0

我只是想编写一个简单的 node.js 应用程序,该应用程序将能够通过 post 写入文件并使用 express.static() 访问该文件。

var express = require('express'),
fs = require('fs')
url = require('url');
var app = express();

app.configure(function(){
  app.use('/public', express.static(__dirname + '/public'));  
  app.use(express.static(__dirname + '/public')); 
  app.use(express.bodyParser());
});

app.post('/receieve', function(request, respond) {
    filePath = __dirname + '/public/data.txt';
    fs.appendFile(filePath, request.body) 
});

app.listen(1110);  

我正在使用邮递员chrome 扩展来测试我的帖子是否正常工作,但是当我尝试发送原始 json 时收到“无法 POST /receive”。关于问题可能是什么的任何想法?谢谢!

4

1 回答 1

4

正如 go-oleg 所提到的,服务器端路由和客户端请求之间存在不匹配:

'/receive' !== '/receieve' // extra `e` in the route

您可能还想在附加时指定格式request.bodyObject#toStringappendFile()它将使用,简单地生成"[object Object]".

fs.appendFile(filePath, JSON.stringify(request.body));

而且,你应该.end()response某个时候:

fs.appendFile(filePath, JSON.stringify(request.body));
response.end();
fs.appendFile(filePath, JSON.stringify(request.body), function () {
    response.end();
});

如果您.send()想在response. 它会调用.end()

于 2013-07-30T03:41:58.147 回答