Node.js fs.writeFile返回意外的令牌语法错误

Node.js fs.writeFile返回意外的令牌语法错误,node.js,fs,Node.js,Fs,以下node.js测试代码片段在第一次运行(创建文件)时工作正常,但一旦文件已经创建,就无法覆盖该文件,而是在第二次运行代码时生成语法错误:“SyntaxError:Unexpected token”。节点文档说fs.writeFile“异步将数据写入文件,如果文件已经存在,则替换该文件。数据可以是字符串或缓冲区。”不确定我在这方面做了什么错误或遗漏了什么,谢谢!我在节点4.2.2上 fs.writeFile('message.txt', 'Hello Node.js', 'utf8', fun

以下node.js测试代码片段在第一次运行(创建文件)时工作正常,但一旦文件已经创建,就无法覆盖该文件,而是在第二次运行代码时生成语法错误:“SyntaxError:Unexpected token”。节点文档说fs.writeFile“异步将数据写入文件,如果文件已经存在,则替换该文件。数据可以是字符串或缓冲区。”不确定我在这方面做了什么错误或遗漏了什么,谢谢!我在节点4.2.2上

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

根据您在注释中提供的堆栈跟踪,您看到的错误是代码另一部分的问题,而不是您发布的代码片段


此外,您(或其他一些函数在幕后这样做)似乎正在尝试
JSON.parse()
某些字符串,但该字符串实际上不是(有效的)JSON(可能是HTML或其他类型)。如果您是从HTTP响应获取此数据,可能需要首先检查
res.headers['content-type']
的值,因为尝试使用
JSON.parse()

您的代码在我的系统上运行得非常好。我在节点v4.2.1上。但我想这不是问题所在。您应该显示错误发生时显示的完整堆栈跟踪。imac:najii jg$node app.js未定义:1 Howdy node.js^SyntaxError:loadDatabase的Object.parse(native)处意外标记H(/Users/jg/Desktop/najii/najii-v002.js:26:16)Object.startServer[作为开始](/Users/jg/Desktop/najii/najii-v002.js:128:15)在对象上。(/Users/jg/Desktop/najii/app.js:3:4)在模块上。_编译(Module.js:435:26)在对象.Module上。_扩展..js(Module.js:442:10)在Module.load(Module.js:356:32)在Function.Module上。_启动时加载(Module.js:311:311:12)在Function.runMain(Module.js:467:10)上(node.js:136:18)以上是完整的错误,但不确定为什么我粘贴它时它不会在这里格式化…对此很抱歉。谢谢你,mscdex,你完全正确。上面的代码在程序开始时读取了“Hello node.js”作为参数之一,并被JSON错误地解析。解析…当我将行更改为'{“message”:“Hello Node.js”}它按预期工作。感谢您的关注,谢谢!