收到错误 405 'Method not Allowed' 尝试向我的节点服务器发送请求时



这是我第一次使用Express和MongoDB,我已经创建了我的Node服务器并将其连接到我的MongoDB数据库,但当我试图从我的html页面向服务器发送请求时,我得到了不允许的错误405方法,下面是我的Node.js服务器代码

mongoose.connect('mongodb://localhost/userdatabase' ,{
useNewUrlParser: true,
useUnifiedTopology: true
})
const app = express()
app.use('/', express.static(path.join(__dirname, 'static')))
app.use(bodyParser.json())
const port = 5500
app.listen(port, () => {
console.log(`server is up at ${port}`)
})

app.post('/api/register', async(req, res) => {
const {username, password} = req.body
res.json({status: 'ok'})
try{
const response = await User.create({
username,
password
})
console.log('User created succesfully' , response)
}catch(error){
console.log(error)
}
})

这是我试图调用的函数,用于进行请求后

const form = document.querySelector('#register')
form.addEventListener('submit', registerUser)
async function registerUser(event){
event.preventDefault()
const username = document.getElementById('username').value
const password = document.getElementById('password').value
const result = await fetch('/api/register', {
method: 'POST',
headers: {
'Content-Type' : 'application/json'
}, body: JSON.stringify({
username,
password
})
}).then(res => res.json())
}

基本上,我正在创建一个登录系统并尝试注册用户,但由于某种原因,我在尝试调用服务器时不断收到错误405。注意,由于某种原因它在我之前尝试时工作了3次,我几乎没有更改代码中的任何内容,但它就是不起作用,它可能是什么?提前感谢

您应该知道mongoDB将在哪个端口运行。

const mongoose = require('mongoose');
main().catch(err => console.log(err));
async function main() {
await mongoose.connect('mongodb://localhost:27017/test');
}

我认为在调用axios时必须声明服务器和端口。axios调用应该是-await fetch('localhost:5500/api/register')。它正在搜索"/api/register",但没有找到任何内容。希望这能解决你的问题。

问题解决了:html文件不在文件夹"static"中,可能我已经移动了它,没有注意到,很抱歉,伙计们,如果有人有同样的问题,请确保检查

最新更新