【问题标题】:Write JSON data to file using AJAX post + node / express使用 AJAX post + node / express 将 JSON 数据写入文件
【发布时间】: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");

我在尝试使其工作时遇到的几个问题:

  • 我应该为$.postapp.post 放置什么路径/URL?当我为$.post 输入/add-tasks 时,我得到一个500 错误,当它是/server.js 时我得到一个404。
  • fs.write 是我应该用来将 JSON 添加到我的 tasks.json 文件的方法吗?

【问题讨论】:

标签: jquery json ajax node.js express


【解决方案1】:

终于明白了。似乎有两个问题:

  1. server.js 文件应该命名为 app.js。
  2. 我错误地使用了fs.write 方法,应该一直使用fs.writeFile

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-14
    • 2011-06-12
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 2015-07-04
    • 2017-04-15
    • 2016-06-16
    相关资源
    最近更新 更多