jol*_*olt 53 javascript node.js
我有一个简单的路由定义express.js:
exports.save = function (request, response)
{
var file = request.body.file;
var content = request.body.content;
var saved = false;
if (fs.existsSync( file ))
{
saved = fs.writeFileSync(file, content, 'utf8');
}
console.log( saved ); // undefined or false, never true
response.send(saved ? 200 : 500, saved ? 'saved' : 'error'); // 500, error
};
Run Code Online (Sandbox Code Playgroud)
是if (typeof saved === 'undefined') saved = true;唯一的选择吗?感觉hacky.
far*_*jad 78
根据node.js 源代码 fs.writeFileSync不返回任何内容.
Error如果出现问题,它会抛出一个对象.所以你应该fs.writeFileSync(file, content, 'utf8');在一个try-catch块内写.
fs.writeFileSync不返回任何值,如果没有异常发生则意味着保存成功; 否则失败.
您可能想要尝试异步版本的文件读取
fs.exists(file, function (exists) {
if (exists) {
fs.writeFiles(file, content, 'utf-8', function (err) {
if (err) {
response.send("failed to save");
} else {
response.send("succeeded in saving");
}
} else {
console.log('file does not exists');
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77868 次 |
| 最近记录: |