如何正确调用fs.writeFile
How to correctly call fs.writeFile
我不知道如何在 JSON 文件上书写。
我正在处理单个应用程序页面,主要使用 AngularJS 和 Node.js
这是我的代码:
--index.html--
<script type="text/ng-template" id="pages/Animazione.html">
...
<td><input id="clickMe" type="button" value="clickme" ng-click="doPost()" /></td>
--app.js--
var App = angular.module('myMovie', ['ngRoute']);
...
.when('/Animazione', {
templateUrl : 'pages/Animazione.html',
controller : 'AnimazioneController'}
)
...
App.controller('AnimazioneController', ['$scope','$http', function($scope, $http) {
$http.get('Animazione.json').success(function(response)
{
$scope.myData=response;
})
.error(function()
{
alert("Si è verificato un errore!");
});
$scope.doPost = function()
{
writeOutputFile({test: 1});
};
}]);
--index.js--(服务器)
function writeOutputFile(data, success, fail) {
var fs = require('fs');
fs.writeFile('auth.json', JSON.stringify(data), function(error) {
if(error) {
console.log('[write output]: ' + err);
if (fail)
fail(error);
} else {
console.log('[write output]: success');
if (success)
success();
}
});
}
有没有我做错的调用或功能?
据我所知,您不能通过客户端直接调用服务器中的函数。
为此,在服务器中定义和结束点,并从客户端调用该结束点。在服务器端点的处理程序中调用您的函数写入文件。
例如:在服务器中定义如下所示的 /writefile
端点(在服务器端使用 express)将以下内容添加到 index.js
var express = require('express');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var fs = require('fs');
var http = require('http');
var cors = require('cors');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(cors());
app.post('/writefile', function(req, res) {
var fileData = req.body.fileContent;
fs.writeFile('message.txt', fileData , function(err) {
if (err) {
res.status(500).jsonp({ error: 'Failed to write file' });
}
res.send("File write success");
});
});
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
var port = 3000;
app.set('port', port);
var server = http.createServer(app);
server.listen(port);
现在你的服务器是 运行 在 3000 端口。
在客户端:
$http({
method: 'POST',
url: 'http://localhost:3000/writefile', // Assuming your running your node server in local
data: { "fileContent": {"test": 1} } // Content which needs to be written to the file 'message.txt'
}).then(function(){
// Success
},
function(error) {
//error handler
console.error("Error occured::",error);
});
我不知道如何在 JSON 文件上书写。 我正在处理单个应用程序页面,主要使用 AngularJS 和 Node.js
这是我的代码:
--index.html--
<script type="text/ng-template" id="pages/Animazione.html">
...
<td><input id="clickMe" type="button" value="clickme" ng-click="doPost()" /></td>
--app.js--
var App = angular.module('myMovie', ['ngRoute']);
...
.when('/Animazione', {
templateUrl : 'pages/Animazione.html',
controller : 'AnimazioneController'}
)
...
App.controller('AnimazioneController', ['$scope','$http', function($scope, $http) {
$http.get('Animazione.json').success(function(response)
{
$scope.myData=response;
})
.error(function()
{
alert("Si è verificato un errore!");
});
$scope.doPost = function()
{
writeOutputFile({test: 1});
};
}]);
--index.js--(服务器)
function writeOutputFile(data, success, fail) {
var fs = require('fs');
fs.writeFile('auth.json', JSON.stringify(data), function(error) {
if(error) {
console.log('[write output]: ' + err);
if (fail)
fail(error);
} else {
console.log('[write output]: success');
if (success)
success();
}
});
}
有没有我做错的调用或功能?
据我所知,您不能通过客户端直接调用服务器中的函数。
为此,在服务器中定义和结束点,并从客户端调用该结束点。在服务器端点的处理程序中调用您的函数写入文件。
例如:在服务器中定义如下所示的 /writefile
端点(在服务器端使用 express)将以下内容添加到 index.js
var express = require('express');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var fs = require('fs');
var http = require('http');
var cors = require('cors');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(cors());
app.post('/writefile', function(req, res) {
var fileData = req.body.fileContent;
fs.writeFile('message.txt', fileData , function(err) {
if (err) {
res.status(500).jsonp({ error: 'Failed to write file' });
}
res.send("File write success");
});
});
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
var port = 3000;
app.set('port', port);
var server = http.createServer(app);
server.listen(port);
现在你的服务器是 运行 在 3000 端口。
在客户端:
$http({
method: 'POST',
url: 'http://localhost:3000/writefile', // Assuming your running your node server in local
data: { "fileContent": {"test": 1} } // Content which needs to be written to the file 'message.txt'
}).then(function(){
// Success
},
function(error) {
//error handler
console.error("Error occured::",error);
});