【发布时间】:2017-02-22 06:50:02
【问题描述】:
我刚开始学习和试验 Node.js(第一次处理 AJAX、JSON 和服务器端),我想使用 AJAX 将一个简单表单的内容以 JSON 格式发布到我的目录中的文件中,并且一个节点/快递服务器。我目前每次尝试发布表单内容时都会收到 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,我主要是从教程中借来的,所以我不确定它是否都是必要的(文件名: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放置什么路径/URL?当我为$.post输入/add-tasks时,我得到一个500 错误,当它是/server.js时我得到一个404。 -
fs.write是我应该用来将 JSON 添加到我的 tasks.json 文件的方法吗?
【问题讨论】:
标签: jquery json ajax node.js express