我在前端使用Angular,并尝试将JSON对象写入与index.html相同目录中的名为“ post.json”的文件。我可以使用PHP使其工作,但我想知道如何使用Node.js。我在线上看了很多帖子,但也许我不了解http POST的实际工作原理以及服务器需要从Angular应用程序写入文件的哪些设置。如何从Angular应用程序写入文件以及节点服务器需要哪些设置?
Angular文件中的代码:
// Add a Item to the list
$scope.addItem = function () {
$scope.items.push({
amount: $scope.itemAmount,
name: $scope.itemName
});
var data = JSON.stringify($scope.items);
$http({
url: 'post.json',
method: "POST",
data: data,
header: 'Content-Type: application/json'
})
.then(function(response) {
console.log(response);
},
function(response) {
console.log(response);
});
// Clear input fields after push
$scope.itemAmount = "";
$scope.itemName = "";
};
这是节点服务器文件:
var connect = require('connect');
var serveStatic = require('serve-static');
connect().use(serveStatic(__dirname)).listen(8080);
fs = require('fs');
fs.open('post.json', 'w', function(err, fd){
if(err){
return console.error(err);
}
console.log("successful write");
});
然后,我得到这个错误:
这是使用Express.js框架的Node.js服务器的示例(以防您不限于'connect')。
var express = require('express');
var app = express();
var fs = require('fs');
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.post('/', function (req, res) {
fs.writeFile(__dirname+"/post.json", req.body, function(err) {
if(err) {
return console.log(err);
}
res.send('The file was saved!');
});
});
app.listen(8080, function () {
console.log('Example app listening on port 8080!');
});
在您的角度控制器中,明确指定网址:
$http({
url: 'http://localhost:8080',
method: "POST",
data: data,
header: 'Content-Type: application/json'
})
编辑:
body-parser
为简化起见,删除了中间件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句