使用 Node.js 和 Express 进行 Http Post

问题描述 投票:0回答:1

我只是想编写一个简单的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 时,我收到“无法发布/接收”消息。关于问题可能是什么的任何想法吗?谢谢!

node.js express rest post httpconnection
1个回答
4
投票

正如 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()

© www.soinside.com 2019 - 2024. All rights reserved.