节点服务器没有写入文件?

时间:2015-03-17 23:58:09

标签: node.js npm

我正在运行一个带有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")

1 个答案:

答案 0 :(得分:1)

这里可能发生了一些事情:

控制台是否记录任何内容?可能是你的推文流实际上没有流式传输。

您是否有权写入ISIStweets.json文件?如果该文件已存在,则该文件可能由运行节点的用户以外的其他人拥有。如果该文件不存在,请检查您是否有权在此目录中写入。