我刚刚开始学习和试验Node.js(第一次处理AJAX,JSON和服务器端),我想使用AJAX将一个简单表单的内容以JSON格式发布到我的目录中的文件中Node / Express服务器。我每次尝试发布表单内容时都会收到POST http://localhost:3000/server.js 404 (Not Found)
或POST http://localhost:3000/add-tasks 500 (Internal Server Error)
错误(有关详细信息,请参阅底部的问题)。
这是目录结构:
这是我的HTML (文件名:index.html):
<div>
<label for="important">Important?</label>
<input type="checkbox" id="important" name="important">
</div>
<div>
<label for="urgent">Urgent?</label>
<input type="checkbox" id="urgent" name="urgent">
</div>
<button type="button" id="submitToDo">
Add
</button>
</div>
这是客户端JS (文件名:main.js):
$( document ).ready( function () {
var userTask = $( "#task" ).val();
var userImportant = $( "#important" ).prop( "checked" );
var userUrgent = $( "#urgent" ).prop( "checked" );
var toDo = {
task: userTask,
important: userImportant,
urgent: userUrgent,
};
$( "#submitToDo" ).on("click", function() {
$.post("/server.js", toDo);
});
});
这是服务器端的JS,我大多是从教程中借用的,所以我不确定是否所有必需(filename:server.js):
var express = require("express");
var app = express();
var bodyParser = require("body-parser");
var fs = require("fs");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(express.static("./public"));
app.post("/add-tasks", function(req, res) {
fs.write("tasks.json", "JSON", req.body);
});
app.listen(3000);
console.log("Express is running on port 3000");
我试图让这个问题解决时遇到的问题很少:
$.post
和app.post
添加什么路径/网址?当我为/add-tasks
添加$.post
时,我收到500错误,当/server.js
时我得到404。fs.write
方法将JSON添加到 tasks.json 文件中吗?答案 0 :(得分:0)
终于明白了。似乎有两个问题:
fs.write
方法不当,应该使用fs.writeFile
。