Tag: node.js

永远存储console.log输出的地方在哪里?

我永远安装并使用它,发现它很有趣。 但是我意识到日志被放置在别的地方。 有什么build议吗?

我如何获得node.js中的string的sha1哈希值?

我试图创build一个用node.js写的websocket服务器 为了让服务器工作,我需要得到一个string的SHA1哈希值。 我必须做的是在文档第35页的第5.2.2节中解释。 说明:例如,如果客户端握手中"Sec-WebSocket-Key"头的值为"dGhlIHNhbXBsZSBub25jZQ==" ,则服务器会附加"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"string形成string"dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11" 。 然后,服务器将采取此string的SHA-1散列,给出值0xb3 0x7a 0x4f 0x2c 0xc0 0x62 0x4f 0x16 0x90 0xf6 0x46 0x06 0xcf 0x38 0x59 0x45 0xb2 0xbe 0xc4 0xea。 这个值然后是base64编码,给出值"s3pPLMBiTxaQ9kYGzzhZRbK+xOo=" ,这将在"Sec-WebSocket-Accept"头中返回。

传递参数要求(加载模块时)

使用require加载模块时,是否可以传递参数? 我有模块,login.js提供loginfunction。 它需要一个数据库连接,我想要在我的所有模块中使用相同的数据库连接。 现在我导出一个函数login.setDatabase(…),让我指定一个数据库连接,并且工作得很好。 但我宁愿通过数据库和任何其他要求,当我加载模块。 var db = … var login = require("./login.js")(db); 我很新的NodeJS和通常开发使用Java和Spring框架,所以是的…这是一个构造函数注入:)是否有可能做类似于我上面提供的代码?

运行“grunt”命令时出现“致命错误:无法find本地grunt”

我用下面的命令卸载了grunt。 npm uninstall -g grunt 然后我再次用下面的命令安装了grunt。 npm install -g grunt-cli 请访问以下链接: https : //npmjs.org/package/grunt-html 我想使用上面的咕噜插件 但是当我运行grunt命令时,它给了我下面的错误: D:\nodeJS\node_modules\grunt-html>grunt grunt-cli: The grunt command line interface. (v0.1.6) Fatal error: Unable to find local grunt. If you're seeing this message, either a Gruntfile wasn't found or grunt hasn't been installed locally to your project. For more information about installing […]

如果有基本授权,如何在Node.js中使用http.client

按照标题,我该怎么做? 这是我的代码: var http = require('http'); var client = http.createClient(80, 'www.example.com'); // to access this url i need to put basic auth. var request = client.request('GET', '/', {'host': 'www.example.com'}); request.end(); request.on('response', function (response) { console.log('STATUS: ' + response.statusCode); console.log('HEADERS: ' + JSON.stringify(response.headers)); response.setEncoding('utf8'); response.on('data', function (chunk) { console.log('BODY: ' + chunk); }); });

了解Node.js模块:多个需要返回相同的对象?

我有一个关于模块caching的node.js文档的问题: 模块在第一次加载后被caching。 这意味着(除其他外)每个调用require('foo')将得到完全相同的对象返回,如果它将parsing为相同的文件。 多次调用require('foo') 可能不会导致模块代码被多次执行。 这是一个重要的function。 有了它,“部分完成”的对象可以被返回,从而允许传递依赖被加载,即使它们会导致循环。 may是什么意思? 我想知道如果require将始终返回相同的对象。 因此,如果我需要app.js的模块A并更改app.js (需要返回的那个)中的exports对象,然后在app.js中需要模块B本身需要模块A ,那么我是否总能得到该对象的修改版本,还是新的? // app.js var a = require('./a'); ab = 2; console.log(ab); //2 var b = require('./b'); console.log(bb); //2 // a.js exports.a = 1; // b.js module.exports = require('./a');

如何在不使用npm的情况下安装node.js模块?

有很多模块在node的github页面上列出,但是没有用npm-registry发布。 这些模块不能使用npm进行安装。 在从Git中克隆它们之后安装这些nodejs模块的正确方法是什么?

在EJS模板(使用ExpressJS)中检查variables的存在的正确方法是什么?

在EJS的github页面上,有一个简单的例子: https : //github.com/visionmedia/ejs 例 <% if (user) { %> <h2><%= user.name %></h2> <% } %> 这似乎是检查名为用户的variables的存在,如果它存在,做一些东西。 杜,对不对? 我的问题是,如果用户variables不存在,为什么世界上会抛出一个ReferenceError? 这使得上面的例子没用。 什么是检查variables存在的适当方法? 我希望使用try / catch机制,并抓住ReferenceError? ReferenceError: user is not defined at IncomingMessage.anonymous (eval at <anonymous> (/usr/local/lib/node/.npm/ejs/0.3.1/package/lib/ejs.js:140:12)) at IncomingMessage.<anonymous> (/usr/local/lib/node/.npm/ejs/0.3.1/package/lib/ejs.js:142:15) at Object.render (/usr/local/lib/node/.npm/ejs/0.3.1/package/lib/ejs.js:177:13) at ServerResponse.render (/usr/local/lib/node/.npm/express/1.0.7/package/lib/express/view.js:334:22) at Object.<anonymous> (/Users/me/Dropbox/Projects/myproject/server.js:188:9) at param (/usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:146:21) at pass (/usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:162:10) at /usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:152:27 […]

Nodejs发送文件作为回应

Expressjs框架有一个sendfile()方法。 我怎样才能做到这一点,而不使用整个框架。 我正在使用node-native-zip来创build一个存档,我想将其发送给用户。

使用npm卸载时自动从package.json中删除依赖项

在npm init我可以使用以下方法在我的package.json中添加依赖项: npm install package –save 并说,我想uninstall包,我这样做: npm uninstall package 但我希望我的package.json也可以相应更新,而不必手动转到该文件并删除该行。 从npm文档它说: 这是严格的附加,所以它不会从你的package.json中删除选项,没有一个很好的理由。 所以,我只是想知道这是否可能。