2015-11-27 38 views
0

以下node.js测试代码片段在第一次运行时(创建文件)完美工作,但在创建文件后无法覆盖文件,而是生成当代码第二次运行时出现语法错误:'SyntaxError:Unexpected token'。 Node文档说fs.writeFile“将数据异步写入文件,如果文件已存在,则替换该文件,数据可以是字符串或缓冲区。”不知道我在做什么错误或失踪,谢谢!我在节点4.2.2Node.js fs.writeFile返回意外标记语法错误

fs.writeFile('message.txt', 'Hello Node.js', 'utf8', function (err) { 
    if(err){ 
     throw err; 
    } 
    else{ 
     console.log('It\'s saved!'); 
    } 
}); 
+0

您的代码在我的系统上完美工作。我在Node v4.2.1上。但我想这不是问题。 –

+0

您应该显示发生错误时显示的完整堆栈跟踪。 – mscdex

+0

的iMac:najii JG $节点app.js 未定义:1 你好Node.js的 ^ 语法错误:意外标记ħ 在Object.parse(天然) 在loadDatabase(/用户/ JG /桌面/ najii/najii -v002.js:26:16) at Object.startServer [as start](/Users/jg/Desktop/najii/najii-v002.js:128:15) at Object。 (Module.js:435:26) (Object.Module._extensions..js(module.js:442: 10) at Module.load(module.js:356:32) at Function.Module._load(module.js:311:12) at Function.Module.runMain(module.js:467:10) at启动(node.js:136:18) – Najii

回答

0

根据您在您的评论所提供的堆栈跟踪,你看到的错误是你的代码的另一部分,没有给你的片断的一个问题发布。此外,你(或其他一些函数在后台这样做)似乎正在尝试JSON.parse()某些字符串,但该字符串实际上并不是(有效的)JSON(可能是HTML或某种其他类型)。如果您从HTTP响应中获取此数据,则可能首先检查res.headers['content-type']的值,因为尝试使用JSON.parse()

+0

谢谢你,mscdex,你完全正确。上面代码中有'Hello Node.js'作为参数之一的代码在程序开始时被读入,并被JSON.parse错误地解析...当我将该行更改为'{“message”:“Hello Node。 js“}”它按预期工作。欣赏你对此的额外眼睛,谢谢! – Najii