我正在使用 npm 运行一个小型 Twitter 流,该流将推文打印到我的控制台。我想将它们写入磁盘,但我的服务器没有这样做。这是我的routes.js 文件:
var Twit = require('twit'), // wrapper on top of twitter api
dotenv = require('dotenv'), // used for keys -> get from .env
fs = require('fs');
module.exports = function(app) {
dotenv.load();
var T = new Twit({
consumer_key: process.env.TWITTER_CONSUMER_KEY,
consumer_secret: process.env.TWITTER_SECRET_KEY,
access_token: process.env.TWITTER_ACCESS_TOKEN,
access_token_secret: process.env.TWITTER_ACCESS_KEY
});
var middleEast = ['29.4' , '33.7' , '37.7' , '46.1' ]
var stream = T.stream('statuses/filter', {track: '#ISIS', language: 'en'})
stream.on('tweet', function(tweet) {
if (tweet.geo!=null){
console.log(tweet.geo.coordinates)
}
console.log(tweet.text)
fs.appendFile("./ISIStweets.json", tweet.text)
})
这不会向文件写入任何内容。但是,同一文件夹中的相同代码(如下所示)可以成功写入文件。给出了什么?
var fs = require('fs');
fs.appendFile("./ISIStweets.json", "Hello there!\n")
最佳答案
这里可能发生了一些事情:
控制台是否记录任何内容?可能您的推文流实际上没有传输任何内容。
您是否有权写入 ISIStweets.json
文件?如果该文件已存在,则它可能由运行 Node 的用户以外的其他人拥有。如果该文件不存在,请检查您是否具有在此目录中写入的权限。
关于node.js - Node 服务器未写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29111888/