Tag: 未定义的

节点asynchronous – 工作asynchronous方法在async.parallel内返回undefined

基本上我有一个方法从一个API获取值和工作,但在async.parallel列出的结果都是未定义的。 这里的方法是: function getNumberOfSharesFromFacebookApi(url ,callback) { request(facebookApiUrl + url + '&format=json', function (error, response, body) { let res = 0; if (!error && response.statusCode == 200) { try { res = JSON.parse(body)[0]['total_count']; } catch(err) { } } callback(res); }); } 这是asynchronous调用: async.parallel ([ callback => { getNumberOfSharesFromFacebookApi(urlsToTest[0], callback); }, callback => { getNumberOfSharesFromFacebookApi(urlsToTest[1], callback); }, […]

id没有定义(sails.socket.emit)

我只是试图使用sails.socket.emit()发送消息,我得到这个: error: Sending 500 ("Server Error") response: Error (SAILS:HOOK:SOCKETS:USAGE):: `sails.sockets.get()` cannot lookup socket w/o an id (got: `undefined`) 控制器中的代码: sayHiToFriend: function(req, res) { var friendId = req.param('id'); sails.sockets.emit(friendId, 'privateMessage', {from: req.session.userId, msg: 'Hi!'}); res.json({ message: 'Message sent!' }); } 和客户端: io.socket.get('/user/sayHiToFriend', function serverSays(err,users){ console.log('with headers: ', JWR.headers); console.log('and with status code: ', JWR.statusCode);*/ if (err) […]

Node.js导出的函数没有返回正确的数据

在我的node.js应用程序中,我有服务器从github获得一个atom feed,然后使用外部模块parsing它。 它在一个文件(getfeed.js)中工作正常,但是当我将其导出到我的app.js文件并调用它时,它返回undefined。 当我将它logging到getfeed.js脚本中时,它将返回正确的数据; 只是在app.js里面的数据是未定义的。 很奇怪。 这是有问题的代码: getfeed.js module.exports = function() { var FeedParser = require("feedparser") , request = require("request") , ejs = require("ejs") , fs = require("fs"); var templateString = fs.readFileSync("./views/feed.ejs", { encoding: "utf-8"}); var req = request("https://github.com/codecademy-beginners/text-adventure/commits/master.atom") , feedparser = new FeedParser(); . . . . var totalText; feedparser.on('error', function(error) { console.error("Oops. There […]

为什么node.js bodyParser总是返回'undefined'?

在'app.js'我有 var bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); 'index.js'完整的代码 var express = require('express'); var router = express.Router(); var mysql = require('mysql'); router.get('/', function(req, res, next) { res.render('index', { title: 'Here' }); }); router.post('/manager', function(req, res, next) { var connection = mysql.createConnection({ host : 'localhost', user : req.body.username, password : req.body.password, database : 'shops' […]

在express.js中实例化的控制器中的“this”的意外值

“this”似乎并不涉及实例化的预算控制器对象。 相反,它似乎是指全局对象。 有人知道为什么吗? 我已经定义了一个预算模型。 注入控制器,我试图简单地生成一个随机的6个string,当我在我的应用程序中打/预算。 相反,这个.DEFAULT_SLUG_LENGTH是不确定的,我不明白为什么。 这是一个愚蠢的testing案例,说明这个问题。 在引用另一个函数中的this.budget来根据slug值查询数据库时,我遇到了类似的问题。 //models/budget.js var Schema = require('jugglingdb').Schema; var schema = new Schema('postgres',{url:process.env.DATABASE_URL}); var Budget = schema.define('budgets',{ total: Number, slug: String }); module.exports = Budget; ==================== //controllers/budget.js function BudgetController (budget) { this.budget = budget; }; BudgetController.prototype.DEFAULT_SLUG_LENGTH = 6; BudgetController.prototype.generateSlug = function (req,res) { var slug = ""; var possible = […]

温斯顿logging器文件名错误未定义

我是新的节点js和试图winstonlogging器为我的项目,一切工作正常,但是当我试图创build我自己的logging器对象,并将日志传输到文件名我得到的错误为: TypeError:无法读取属性“文件名”未定义我觉得我做了什么愚蠢的事情,因为当我只是试图写日志文件使用Winston的默认对象的作品,我张贴我的代码与错误的快照。 我创build了简单的快速js项目,并在app.js中logging日志代码,如下所示: /** * Module dependencies. */ var express = require('express'), routes = require('./routes'), user = require('./routes/user'), http = require('http'), path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); // development only if ('development' == […]

检查节点中的错误参数

在asynchronous操作中传递一个错误参数是节点中的约定: async.someMagicalDust(function(callback) { // some asynchronous task // […] callback(); }, function(err) { // final callback if(err) throw err; // […] }); 也许我太天真了,但是我从来没有对if(variable)符号的大爱好者 – 可能从Cinheritance,因为过去已经讨论过很多次了 。 另一方面,我有时遇到一个null参数,这个错误检查: if(typeof err !== 'undefined' && err !== null) 有点太冗长了。 另一个解决scheme是 if(err != null) 但我认为非严格的检查可能会非常棘手,即使我认为与空比较是正常的。 检查节点中错误参数的最佳方法是什么?

你将如何检查在ejs为node.js未定义的属性?

在ejs模板中检查未定义的属性的最佳方法是什么? (我使用TJ Holowaychuk的node.js包 ) 例: var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>'; console.log(ejs.render(tpl, { locals: { bar: "baz" } })); 我希望这个渲染“foo undefined”。 它确实会抛出一个foo未定义的错误。 我知道这不是一个问题,因为这是testing中的预期行为。 有没有简单的方法来避免这种情况? 我find的唯一解决scheme是使用hasOwnProperty方法。 var tpl = '<% if (hasOwnProperty("foo")) { %>foo defined<% } else { %>foo undefined<% } %>'; console.log(ejs.render(tpl, { locals: { […]