#jquery #json #ajax #node.js #express
#jquery #json #ajax #node.js #экспресс
Вопрос:
Я только начал изучать и экспериментировать с Node.js (впервые имею дело с AJAX, JSON и на стороне сервера), и я хочу опубликовать содержимое простой формы в файле в моем каталоге в формате JSON, используя AJAX и сервер 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 на стороне сервера, который я в основном позаимствовал из учебника, поэтому я не уверен, что все это необходимо (имя файла: 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 я должен указать для
$.post
andapp.post
? Я получаю ошибку 500, когда я ставлю/add-tasks
для$.post
, и я получаю 404, когда это/server.js
. - Это
fs.write
метод, который я должен использовать для добавления JSON в свои задачи.файл json?
Комментарии:
Ответ №1:
Наконец-то понял это. Похоже, возникли две проблемы:
- server.js файл должен был быть назван app.js .
- Я использовал
fs.write
метод неправильно и должен был использоватьfs.writeFile
.