这是我第一次使用Express和MongoDB,我已经创建了我的节点服务器并将它连接到我的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)
}
})
下面是我试图调用以执行post请求的函数
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次,我没有更改代码中的几乎任何内容,但它只是不能工作,它可以是什么?提前感谢
发布于 2022-03-07 22:25:09
您应该知道将在哪个端口运行mongoDB。
const mongoose = require('mongoose');
main().catch(err => console.log(err));
async function main() {
await mongoose.connect('mongodb://localhost:27017/test');
}
发布于 2022-03-07 22:36:30
我认为您必须在调用axios时声明服务器和端口。axios调用应该是- await fetch('localhost:5500/api/register')
。它正在搜索‘/api/寄存器’,但没有找到任何东西。希望这能解决你的问题。
发布于 2022-03-07 22:45:31
问题解决了: html文件不在“静态”文件夹中,可能是我移动了它,没有注意到,对不起,如果有人有同样的问题,请确保检查它。
https://stackoverflow.com/questions/71390682
复制相似问题