我只是想编写一个简单的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);
我正在使用 postman chrome 扩展来测试我的帖子是否正常工作,但当我尝试发送原始 json 时,我收到“无法发布/接收”消息。关于问题可能是什么的任何想法吗?谢谢!
正如 go-oleg 提到的,服务器端路由和客户端请求之间存在不匹配:
'/receive' !== '/receieve' // extra `e` in the route
您可能还想在附加
request.body
时指定格式。 Object#toString
(appendFile()
将使用),只需生成 "[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()
。