如图:加载utils.js报错,试问 该软文如何写写

使用lifecycle.js的beforeShutdown报错 - Pomelo Club
使用lifecycle.js的beforeShutdown报错
var before_numbers = 0;
var after_numbers = 0;
var checkEndOrNot = function( cb ) {
after_numbers++;
( before_numbers, after_numbers );
if( before_numbers === after_numbers ) {
module.exports.beforeShutdown = function( app, cb ) {
var playerPool = app.get( &playerPool& );
for( var uid in playerPool ) {
before_numbers++;
var player = playerPool[ uid ];
player.saveChangedDataToDB(function() {
checkEndOrNot( cb );
代码如上,saveChangedDataToDB是个异步事件,都能打印出( before_numbers, after_numbers );这个,并且相等,但就是不执行cb(),pomelo-master.log错误如下:
[ 16:12:43.850] [ERROR] pomelo -[31m[/game-server/node_modules/pomelo/lib/util/appUtil.js]
[39mfail to operate component, method: start, err: &Error: Port occupied already, check your server to add.
at /game-server/node_modules/pomelo/lib/master/master.js:97:40
at Object.utils.invokeCallback (/game-server/node_modules/pomelo/lib/util/utils.js:15:8)
at /game-server/node_modules/pomelo/lib/util/utils.js:214:12
at ChildProcess.exithandler (child_process.js:635:7)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:743:16)
at Socket.&anonymous& (child_process.js:956:11)
at Socket.EventEmitter.emit (events.js:95:17)
at Pipe.close (net.js:465:12)&
是不是配置了服务器自动重启?
是的,怎么解决这个问题呢?
@ 这确实是一个问题,暂时可能没有太好的办法,后面我们会考虑解决
@ 我现在其实就是想关闭服务器前给玩家数据存档,只有这个操作完后才真正进入关闭服务器的流程,目前pomelo好像不能很好的支持这样的需求,非常希望新版本能够支持下,嘿嘿JS中关于call()方法的一个问题,如图中所示,求高手详解。_百度知道
JS中关于call()方法的一个问题,如图中所示,求高手详解。
提问者采纳
析四种代码前首先弄清楚象obj调用f函数obj发变化 obj.f(); 面代码象obj调用f函数f函数第句this.a = 'A'this指清楚我直接说this调用f函数象显objthis.a = 'A'实际obj.a = 'A'说obj属性a其值A同道理第二句代码给obj添加属性b其值函数alertB 明白obj.f()直接影响obj.a = 'A'obj.b = function(){alert('B')} 弄明白obj.f()影响接要搞清楚f.call(obj)种调用解call函数知道更些;解希望自仔细研究我能直接告诉: f.call(obj)相于obj.f() 看要先讲清楚obj.f()影响f.call(obj)其实obj.f() 再看四种调用 第种: 首先看看第句根据前面析我知道e.a = 'A'第二句干呢第二句alert(a)显ae没关系由于变量a事先没定义js能直接使用未定义变量alert(a)其实错所没看任何反应使用发者工具能看写已经报错错误代码自没任何反应 第二种: 第二种比较绕看看调用程吧f.call(e.t)e.te没t属性所句相于f.call(undefined)call函数第参数undefined或者nullf.call(undefined)相于f()相于window.f()根据析f函数调用者window说window.a =' A'第二句alert(a)显函数e作用域变量a存所jswindow作用域查找属性awindow属性a值A所候alert(a)alert(window.a)alert结A 第三种: 我觉看前两种调用析应该知道f.call(y.t)相于相于y.t.f()遗憾y变量并没定义论函数e作用域内window作用域内y都存使用未定义变量种错误语句所带三种调用第种错alert(a)根本没执行没任何反应;算执行alert(a)错第种调用错误 第四种: 第四种应该比较容易理解根据析f.call(e)e.a = 'A'没意见吧所第二句alert(e.a)alertA
提问者评价
很谢谢你,讲的很透彻。
来自团队:
其他类似问题
为您推荐:
其他1条回答
markcall 目 改变this指向 要明白this目标知道宿主
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁使用requirejs模块化引入 js,不知道为什么还是报错,就如图所示_百度知道
使用requirejs模块化引入 js,不知道为什么还是报错,就如图所示
我直接使用esl没有问题的。。。require.config({&&&&&&&&paths:&{&&&&&&&&&&&&'echarts':&'./echarts2/echarts-original',&&&&&&&&&&&&'echarts/chart/bar':&'./echarts2/echarts-original',&&&&&&&&&&&&'echarts/chart/line':&'./echarts2/echarts-original',&&&&&&&&&&&&'echarts/chart/pie':&'./echarts2/echarts-original',&&&&&&&&&&&&'echarts/theme':&'./echarts2/theme'&&&&&&&&}&&&&});&&&&&&&&require([&&&&&&&&&&&&&&&&&&&&&&&&'echarts',&&&&&&&&&&&&&&&&&&&&&&&&'echarts/chart/bar',&&&&&&&&&&&&&&&&&&&&&&&&'echarts/chart/line',&&&&&&&&&&&&&&&&&&&&&&&&'echarts/chart/pie'&&&&&&&&&&&&&&&&],&function&(ec)&{&&&&&&&&&&&&&&&&&&&&EChart._ec&=&&&&&&&&&&&&&&&&&&&&&if&(callback)&{&&&&&&&&&&&&&&&&&&&&&&&&callback.call(ec,&ec);&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&});还有,你那报什么错了 ?
来自团队:
其他类似问题
为您推荐:
模块化的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁我是一个新手,遇到一个难题,还请大家进来帮助我一下,不胜感激 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
背景:我想做一个个人博客网站
目的:学习nodejs+mongodb等web开发技术
个人水平:2012年毕业,12-14年都是做的Linux 上面的Netfilter的开发
14年来到上海,做了一名 salesforce的developer,当然,做这种基于平台的二次开发,我发现自己有太多的web知识要学习
像jquery,html, 还有对web开发的整体概念…等等,感觉自己是个小学生了.
环境: 系统是Mac
node : v0.12.0
nongodb:v3.0.0
├── connect-flash@0.1.1
├─┬ connect-mongo@0.8.0
│ ├─┬ debug@2.1.3
│ │ └── ms@0.7.0
│ ├── depd@1.0.0
│ └── lodash@3.6.0
├── ejs@2.3.1
├─┬ express@3.4.8
│ ├── buffer-crc32@0.2.1
│ ├─┬ commander@1.3.2
│ │ └── keypress@0.1.0
│ ├─┬ connect@2.12.0
│ │ ├── batch@0.5.0
│ │ ├── bytes@0.2.1
│ │ ├─┬ multiparty@2.2.0
│ │ │ ├─┬ readable-stream@1.1.13
│ │ │ │ ├── core-util-is@1.0.1
│ │ │ │ ├── inherits@2.0.1
│ │ │ │ ├── isarray@0.0.1
│ │ │ │ └── string_decoder@0.10.31
│ │ │ └── stream-counter@0.2.0
│ │ ├── negotiator@0.3.0
│ │ ├── pause@0.0.1
│ │ ├── qs@0.6.6
│ │ ├── raw-body@1.1.2
│ │ └── uid2@0.0.3
│ ├── cookie@0.1.0
│ ├── cookie-signature@1.0.1
│ ├── debug@0.8.1
│ ├── fresh@0.2.0
│ ├── merge-descriptors@0.0.1
│ ├── methods@0.1.0
│ ├── mkdirp@0.3.5
│ ├── range-parser@0.0.4
│ └─┬ send@0.1.4
└── mime@1.2.11
├── express-partials@0.3.0
└─┬ mongodb@2.0.25
├─┬ mongodb-core@1.1.21
│ ├─┬ bson@0.3.1
│ │ └─┬ bson-ext@0.1.0
└── nan@1.7.0
│ ├─┬ kerberos@0.0.10
│ │ └── nan@1.7.0
│ ├─┬ mkdirp@0.5.0
│ │ └── minimist@0.0.8
│ └── rimraf@2.2.6
└─┬ readable-stream@1.0.31
├── core-util-is@1.0.1
├── inherits@2.0.1
├── isarray@0.0.1
└── string_decoder@0.10.31
代码是我在github上clone的,源码地址
** 问题:**
1,页面上有一个注册的表单提交,输入用户名和密码,点击注册,执行save
var mongodb = require('./../db')
, format = require('util').
function User(user) {
this.name = user.
this.password = user.
module.exports = U
User.prototype.save = function save(callback) {
// 存入 Mongodb 的文档
var user = {
name: this.name,
password: this.password
mongodb.open(function(err, db) {
if (err) {
console.log(format(&err = %s&, err));
return callback(err);
// 读取 users 集合
db.collection('users', function(err, collection) {
if (err) {
console.log(format(&err = %s&, err));
mongodb.close();
return callback(err);
// 为 name 属性添加索引
collection.ensureIndex('name', {unique: true},{w:1});
// 写入 user 文档
collection.insert(user, {safe: true}, function(err, user) {
mongodb.close();
console.log(format(&err = %s&, err));
callback(err, user);
用户是注册成功了,我去数据库查看确实有这么一个刚注册的用户,但是
我的APP挂掉了
报错信息如下:
{ username: '9', password: '9', password_repeat: '9' }
POST /reg 302 229ms - 58b
err = MongoError: Cannot use a writeConcern without a provided callback
/Users/zhubaojun/GitHub/devBlog/node_modules/mongodb/lib/utils.js:99
at Object.&anonymous& (/Users/zhubaojun/GitHub/devBlog/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:42:24)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.&anonymous& (/Users/zhubaojun/GitHub/devBlog/node_modules/mongodb/node_modules/mongodb-core/index.js:2:17)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
其中err = MongoError: Cannot use a writeConcern without a provided callback
node_modules/mongodb/lib/utils.js 种这个函数里面加了一个报错信息
console.log(format(&err = %s&, err));
,才报这条错误信息的
var format = require('util').
var handleCallback = function(callback, err, value1, value2) {
if(callback == null)
if(value2) return callback(err, value1, value2);
return callback(err, value1);
} catch(err) {
process.nextTick(function() {
console.log(format(&err = %s&, err));
我去Google上搜索,是需要一个callback函数,我想不出在哪里添加,因为看代码我觉得callback函数已经添加了
请问该怎么追踪错误和 修改代码,谢谢
// 为 name 属性添加索引
collection.ensureIndex('name', {unique: true},{w:1}, function (err) {
callback(err);
那个地方加了,还是报同样错误,其实程序挂掉之前,数据库里面插入成功了
自豪地采用
// 为 name 属性添加索引
collection.ensureIndex({name:1}, {unique: true}, function (err) {
callback(err);
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的

我要回帖

更多关于 软文如何写 的文章

 

随机推荐