這是我第一次使用 Express 和 MongoDB,我創建了我的節點服務器并將其連接到我的 mongoDB 資料庫,但是當我嘗試從我的 html 頁面向服務器發送請求時,我得到錯誤 405 方法不允許,以下是我的節點.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 次,我幾乎沒有改變任何東西在代碼中,但它不起作用,它可以是什么?提前致謝
uj5u.com熱心網友回復:
您應該告訴 mongoDB 將在哪個埠運行。
const mongoose = require('mongoose');
main().catch(err => console.log(err));
async function main() {
await mongoose.connect('mongodb://localhost:27017/test');
}
uj5u.com熱心網友回復:
我認為您必須在呼叫 axios 時宣告服務器和埠。axios 呼叫應該是 - await fetch('localhost:5500/api/register')。它正在搜索“/api/register”,但沒有找到任何東西。希望這能解決您的問題。
uj5u.com熱心網友回復:
問題已解決:html 檔案不在“靜態”檔案夾中 ?? 可能我已經移動它但沒有注意到,抱歉問題的人,如果有人有同樣的問題,請務必檢查它
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/439545.html
標籤:javascript 节点.js mongodb 表示
