不允许使用 Node.js 方法"/>
不允许使用 Node.js 方法
我是 Node.js 的新手,我无法诊断这个问题是如何出现的。我正在尝试更新数据库中的数据。它在客户端级别被 HTTP 405 阻止。我在网上查看了有关此的各种主题,但没有任何帮助。 SQL 代码工作正常,但是当我尝试将数据提交到服务器时,它被阻止了。我有点迷路了,因为它没有将详细信息记录到服务器的控制台中。另外,我在 res.redirect 上收到一个错误,提示在将标头发送给客户端后无法设置标头。我不确定这是否会影响此代码,但我认为不会,因为我已经对其进行了评论并且代码仍然有效。
ups.js
const express = require('express');
const router = express.Router();
const { StatusCodes, ReasonPhrases } = require("http-status-codes");
module.exports = () => {
router.post("./routes/ups", async (req, res) => {
if(
req.body == null ||
req.body.id == null ||
req.body.av == null
) {
return res.status(StatusCodes.BAD_REQUEST).json({
status: StatusCodes.BAD_REQUEST,
title: ReasonPhrases.BAD_REQUEST,
data: {
error: "Invalid data provided",
}
});
}
var id = req.body.id;
var av = req.body.av;
//Perform Query Ops
var sql = "UPDATE `pc_status` SET available = " + av + " WHERE `id` = " + id + "";
db.query(sql, function(err, result) {
if (err) throw err;
console.log('record inserted');
console.log(req.body.id);
console.log(req.body.av);
//res.redirect(201 ,'/');
});
});
return router;
};
index.js
app.use(require('./routes/ups.js')());
客户端 script.js
function testUpload(payload) {
return fetch("http://localhost:3000/ups", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
mode: "cors",
body: JSON.stringify(payload),
});
}
//Sample payload
var payload = {
id: 24,
available: 3,
};
testUpload(payload)
.then((response) => {
return response.json();
})
.then((data) => {
if(data.status == 201) {
console.log("Good!");
} else {
console.log("Error occured");
console.log(data);
}
})
.catch((error) => {
console.log(error);
});
回答如下:
更多推荐
不允许使用 Node.js 方法
发布评论