Node.js 405(方法不允许)并且列不能为空 MySQL
Node.js 405 (Method Not Allowed) and Column cannot be null MySQL
我正在尝试 post 数据到我的数据库。我有两个问题。
问题一:
我收到不允许使用该方法的回复。我把图片放在下面
[在此处输入图片描述][1]
我遇到的第二个问题是,在尝试将用户的评论插入 MySQL 数据库时,我的数据一直返回 null:
这是错误:
[在此处输入图片描述][2]
这是我的代码:
superhero.html:
<body>
<div class="container">
<h1> Welcome To Chatroom</h1>
<div class="card mb-2" style="width: 38rem;" id="output">
</div>
<form class="inputs" id="form" name="form">
<textarea class="comments" id="comments" placeholder="what's on your mind?" name="comments" ></textarea>
<button type="submit" class="btn btn-primary" id="submitbtn">send</button>
</form>
</div>
<script type="text/javascript" src="/javascript/superhero.js"></script>
<script src="/reload/reload.js"></script>
</body>
superhero.js
const output = document.getElementById('output');
const username = document.querySelector('#username');
const date = document.querySelector('#date');
const submitbtn = document.querySelector('#submitbtn');
const commentOutput = document.querySelector('#message');
const form = document.querySelector('#form');
const comments = document.querySelector('#comments')
form.addEventListener('submit', function(e) {
e.preventDefault(e);
let formMessage = new FormData(form);
formMessage.append('api-key', 'myApiKey');
fetch('http://localhost:5502/superhero', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify(formMessage)
}).then(function(response) {
console.log(response)
return response.text();
}).then(function(text) {
console.log(text);
}).catch(function(error) {
console.log(error);
});
})
index.js
router.post("/superhero", function(req, res) {
const user = req.user;
const comments = req.body.comments;
sqlDatabase.query("INSERT INTO comments (user_id, comments) VALUES (?, ?)", [user, comments],
function(error, results, fields) {
if (error) throw error;
console.log(results);
console.log(error)
});
})
router.get("/superhero", authenticationMiddleware(), function(req, res, err) {
sqlDatabase.query("SELECT users.username, comments.comments, comments.date FROM users INNER JOIN comments ON users.user_id=comments.user_id",
function(error, results, fields) {
if (error) throw error;
res.render('superhero');
console.log(results);
})
})
顺便说一句,我是菜鸟。一直在为此苦苦挣扎。任何帮助,将不胜感激。
[1]: https://i.stack.imgur.com/nG7Tq.png
[2]: https://i.stack.imgur.com/JlgOp.png
问题终于解决了。我改变了这一行
来自:
body: JSON.stringify(formMessage)
至
body: JSON.stringify({ comments: comments.value })
我正在尝试 post 数据到我的数据库。我有两个问题。 问题一: 我收到不允许使用该方法的回复。我把图片放在下面
[在此处输入图片描述][1]
我遇到的第二个问题是,在尝试将用户的评论插入 MySQL 数据库时,我的数据一直返回 null:
这是错误: [在此处输入图片描述][2]
这是我的代码:
superhero.html:
<body>
<div class="container">
<h1> Welcome To Chatroom</h1>
<div class="card mb-2" style="width: 38rem;" id="output">
</div>
<form class="inputs" id="form" name="form">
<textarea class="comments" id="comments" placeholder="what's on your mind?" name="comments" ></textarea>
<button type="submit" class="btn btn-primary" id="submitbtn">send</button>
</form>
</div>
<script type="text/javascript" src="/javascript/superhero.js"></script>
<script src="/reload/reload.js"></script>
</body>
superhero.js
const output = document.getElementById('output');
const username = document.querySelector('#username');
const date = document.querySelector('#date');
const submitbtn = document.querySelector('#submitbtn');
const commentOutput = document.querySelector('#message');
const form = document.querySelector('#form');
const comments = document.querySelector('#comments')
form.addEventListener('submit', function(e) {
e.preventDefault(e);
let formMessage = new FormData(form);
formMessage.append('api-key', 'myApiKey');
fetch('http://localhost:5502/superhero', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify(formMessage)
}).then(function(response) {
console.log(response)
return response.text();
}).then(function(text) {
console.log(text);
}).catch(function(error) {
console.log(error);
});
})
index.js
router.post("/superhero", function(req, res) {
const user = req.user;
const comments = req.body.comments;
sqlDatabase.query("INSERT INTO comments (user_id, comments) VALUES (?, ?)", [user, comments],
function(error, results, fields) {
if (error) throw error;
console.log(results);
console.log(error)
});
})
router.get("/superhero", authenticationMiddleware(), function(req, res, err) {
sqlDatabase.query("SELECT users.username, comments.comments, comments.date FROM users INNER JOIN comments ON users.user_id=comments.user_id",
function(error, results, fields) {
if (error) throw error;
res.render('superhero');
console.log(results);
})
})
顺便说一句,我是菜鸟。一直在为此苦苦挣扎。任何帮助,将不胜感激。 [1]: https://i.stack.imgur.com/nG7Tq.png [2]: https://i.stack.imgur.com/JlgOp.png
问题终于解决了。我改变了这一行 来自:
body: JSON.stringify(formMessage)
至
body: JSON.stringify({ comments: comments.value })