2016-10-13 5 views
0

Node.jsの学習と実験を始めたばかりです(初めてAJAX、JSON、サーバーサイドを扱っています)。シンプルなフォームのコンテンツを投稿したいAJAXとNode/Expressサーバーを使用してJSON形式でディレクトリ内のファイルに追加します。フォームの内容を投稿しようとするたびに、現在POST http://localhost:3000/server.js 404 (Not Found)またはPOST http://localhost:3000/add-tasks 500 (Internal Server Error)というエラーが表示されています(詳細については、下の質問を参照してください)。AJAX post + node/expressを使用してJSONデータをファイルに書き込む

ここディレクトリ構造です::

enter image description here

ここに私の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 (ファイル名です。 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"); 

いくつかの質問取得しようとしながら、これは動作します

  • 何パス/ URLは私が$.postapp.postのために置くべきか?私は$.postのために/add-tasksを置くと500エラーが発生し、それは/server.jsのときに404を得る。
  • fs.write私のtasks.jsonファイルにJSONを追加する方法を教えてください。
+1

[fs.writeドキュメント](https://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback) – DrakaSAN

答えて

0

最後に考え出しました。

  1. server.jsファイルの名前はapp.jsであるはずです。
  2. 私はfs.writeメソッドを不適切に使用していたので、fs.writeFileを使用していたはずです。
関連する問題