相关疑难解决方法(0)

在Node.js中检测CTRL + C.

我从一个不同的SO问题得到了这个代码,但节点抱怨使用process.stdin.setRawMode而不是tty,所以我改变了它.

之前:

var tty = require("tty");

process.openStdin().on("keypress", function(chunk, key) {
  if(key && key.name === "c" && key.ctrl) {
    console.log("bye bye");
    process.exit();
  }
});

tty.setRawMode(true);
Run Code Online (Sandbox Code Playgroud)

后:

process.stdin.setRawMode(true);
process.stdin.on("keypress", function(chunk, key) {
  if(key && key.name === "c" && key.ctrl) {
    console.log("bye bye");
    process.exit();
  }
});
Run Code Online (Sandbox Code Playgroud)

在任何情况下,它只是创建一个完全没有响应的节点进程,什么都不做,第一个抱怨tty,然后抛出错误,第二个什么都不做,并禁用Node的本机CTRL+ C处理程序,所以它甚至没有退出节点,当我按下.如何在Windows中成功处理Ctrl+ ?C

copy-paste event-handling node.js

74
推荐指数
3
解决办法
5万
查看次数

当试图让Mocha观看我的项目时,"没有这样的模块"错误

我正在尝试让Mocha观看我的项目进行测试并不断运行测试但是当我使用-w标志时我得到一个错误.

这里测试执行正常:

C:\Foo>mocha

  .

  ? 1 tests complete (3ms)
Run Code Online (Sandbox Code Playgroud)

在这里 -w

C:\Foo>mocha -w


node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: No such module
    at EventEmitter.<anonymous> (node.js:392:27)
    at Object.<anonymous> (C:\Users\Greg\AppData\Roaming\npm\node_modules\mocha\bin\_mocha:203:11)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Array.0 (module.js:479:10)
    at EventEmitter._tickCallback (node.js:192:40)
Run Code Online (Sandbox Code Playgroud)

我在全局安装了Mocha(npm install -g mocha)并且应该在本地安装到项目中.

我在64位Windows 7家庭高级版上使用节点v0.6015,Mocha 1.0.1和0.6.1.

mocha.js windows-7 node.js

7
推荐指数
2
解决办法
1410
查看次数

python错误抑制信号18到win32

我用以下代码创建了一个简单的test.py:

import sys
res = sys.stdin.read()
print(res)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试跑步时

python test.py
Run Code Online (Sandbox Code Playgroud)

然后我输入

hello
Run Code Online (Sandbox Code Playgroud)

并通过Ctrl+ 结束输入z,我得到以下消息:

4 [sig] bash 11516! sigpacket::process: Suppressing signal 18 to win32 process (pid 10620)
Run Code Online (Sandbox Code Playgroud)

我不知道出什么问题了。

屏幕截图

python winapi stdin signals

7
推荐指数
1
解决办法
2237
查看次数

从外部信号正常关闭 Node.js 程序的最佳实践是什么?

从外部信号优雅地退出 Node.js 程序的最佳实践是什么?

我目前在我的代码中使用它:

process.on( 'SIGINT', function() {
  console.log( "\ngracefully shutting down from  SIGINT (Crtl-C)" )
  // some other closing procedures go here
  process.exit( )
})
Run Code Online (Sandbox Code Playgroud)

node.js

6
推荐指数
2
解决办法
3391
查看次数

Nodejs延迟返回"require"

我的设置如下:

  • Nodejs服务器
  • server.js 要求 utils.js
  • utils.js 将数据从mongodb加载到内存并导出它
  • server.js使用utils.js导出的变量

我担心的问题是mongodb调用是异步的.utils.js在mongodb调用完成之前返回,这意味着server.js在require之后继续执行时将使用未定义的变量.

解决这个问题的最佳方法是什么?我唯一能想到的是将我的server.js代码包装在一个巨大的回调中,并将其传递给进行mongodb调用的函数.对我来说似乎有点乱,有没有更好的方法呢?

码:

server.js
var utils = require("./modules/utils.js");
console.log(utils);
//Do whatever

utils.js
var mods = [];
var db = require("mongojs").connect("localhost", ["modules"]);
db.modules.find({}, function(err, modules){
    mods = modules;
});
module.exports = mods;
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous require node.js

1
推荐指数
1
解决办法
753
查看次数