我正在运行一个带有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")
答案 0 :(得分:1)
这里可能发生了一些事情:
控制台是否记录任何内容?可能是你的推文流实际上没有流式传输。
您是否有权写入ISIStweets.json
文件?如果该文件已存在,则该文件可能由运行节点的用户以外的其他人拥有。如果该文件不存在,请检查您是否有权在此目录中写入。