node.js是否与浏览器中的窗口对象相同

我的意思是node.js有对象是全局函数的方法。 像这样在浏览器中: function myGlobalFunction() { console.log(this === window); } myGlobalFunction(); => true

在npm包中排除testing代码?

npm的package.json文档的devDependencies部分提到了在那里列出你的testing依赖关系,这样你的包的用户就不必拉下额外的依赖关系。 在这种情况下,将testing目录添加到.npmignore ?

我如何在Node.js中使用chmod

如何使用chmod和Node.js? 在包fs有一个方法,应该这样做,但是我不知道第二个参数需要什么。 fs.chmod(path,模式,[callback]) asynchronouschmod(2)。 完成callback没有给出可能的exception之外的其他参数。 fs.chmodSync(path,模式) 同步chmod(2)。 (来自Node.js文档 ) 如果我做了类似的事情 fs.chmodSync('test', 0755); 没有任何事情发生(文件没有改变到该模式)。 fs.chmodSync('test', '+x'); 也不起作用。 我在一台Windows机器上工作。

用TypeScript导入节点模块

我试图让这个工作,但我似乎无法find任何地方的解决scheme。 当试图编译这个单一文件的应用程序: import http = require('http') http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); 使用命令“tsc app.ts –module'commonjs'”我得到以下错误(不使用–module标志给我一个额外的错误告诉我,我需要它来编译外部模块): error TS2071: Unable to resolve external module '"http"'. error TS2072: Module cannot be aliased to a non-module type.

想要了解NodeJS应用程序结构(Full JavaScript Stack)

我想知道一个典型的NodeJS应用程序的结构,因为我阅读和看到的项目越多,我就越困惑,特别是针对这样的问题:(甚至当我更新这个问题时)。 以MEAN堆栈为例,据我所知,NodeJS和Express负责服务器 部分,提供服务器接口等。MongoDB和Angular相当简单。 但是业务逻辑应该去哪里? 说如果我有一个controller.js包含一个函数, 和route.js文件绑定请求与这个控制器function。 我的问题是在哪个模块下这些文件属于/运行(Express或NodeJS?) NodeJS应用的起点在哪里? 说index.php是一个PHP应用程序的起点,但它在哪里NodeJS应用程序? 我可以看到所有nodejs项目都有一个名为server.js或app.js等的文件(包含诸如module.exports = app;类的东西)但是module.exports = app;如何知道要find并执行它的文件呢? 我是NodeJS上的一个新鲜的noob,express,sequelize.js / mongoose,jade / ejs,但是想要开始一个nodejs项目。 请大家详细说明每个模块提供的实际function,以及一个完整的js堆叠nodejs应用程序的典型结构的一般介绍? 提前致谢!

整个网站与node.js和mongodb?

我已经build立了几个使用PHP和MySQL作为后端的网站,并且相信我对这两者都相当熟悉。 然而,在我的新网站的研究中,我遇到了node.js和mongodb(和socket.io,因为该网站将包含聊天)。 我决定使用node.js和mongodb来运行聊天 – 但是不知道是否应该用这两个东西来做整个站点? 既然我要运行一个节点服务器,无论如何我应该运行另一个(单独)托pipe网站? 或者这是一个坏主意? – 它是稳定的吗? 我可以在PHP中编程,仍然使用mongodb – 但不会节点更快? 还有一个问题:我已经计划使用Ajax来处理页面的所有post – 但是因为我已经在使用socket.io进行聊天了 – 我是否应该使用它来完成所有的发布请求? 对于我计划使用jQuery(也适用于所有前端效果)的ajax。

连接的客户端使用套接字io的用户名列表

我使用NodeJS,socketIO和Express在不同的聊天室中创build了一个聊天客户端。 我正在尝试在每个房间的连接用户上显示更新的列表。 有没有办法将用户名连接到一个对象,所以我可以看到所有的用户名: var users = io.sockets.clients('room') 然后做这样的事情: users[0].username 我还有什么其他的方式可以做到这一点? 解决:这是一种重复,但解决scheme没有写得很清楚,所以我想我在这里写下来。 这是Andy Hin所发布的post的解决方法。 还有这篇文章的评论。 只是为了使事情更清楚。 如果你想在socket对象上存储任何东西,你可以这样做: socket.set('nickname', 'Guest'); 套接字也有一个get方法,所以如果你想让所有的用户做: for (var socketId in io.sockets.sockets) { io.sockets.sockets[socketId].get('nickname', function(err, nickname) { console.log(nickname); }); } 正如alessioalex所指出的那样,API可能会改变,并且自己跟踪用户是比较安全的。 你可以通过使用套接字ID来断开连接。 io.sockets.on('connection', function (socket) { socket.on('disconnect', function() { console.log(socket.id + ' disconnected'); //remove user from db } });

使用Node.js和Express进行简单的API调用

我刚刚开始使用Node,API和Web应用程序。 我理解Node.js和Express的基本工作原理,但是现在我想开始调用其他服务的API并使用它们的数据来完成任务。 你能概述基本的HTTP请求,以及如何抓取/parsingNode中的响应吗? 我也有兴趣在我的请求中添加特定的头文件(最初我使用http://www.getharvest.com API来压缩我的时间表数据)。 PS这看起来很简单,但是很多search没有find任何回答我的问题的东西。 如果这是愚蠢的,让我知道,我会删除。 谢谢!

如何安装express.js子应用程序?

我有几个应用程序,我试图合并成一个单一的“套件”:2个应用程序是独立的,一个只是一个身份validation层(FB连接使用everyauth)。 我想要这样设置: / – (家庭)列表的应用程序 / auth – login任何应用程序 / app1 – 需要通过/ authlogin才能访问 / app2 – (相同) 我已经考虑离开app1和app2独立,顶层是一个代理,但我认为这将是很难分享他们之间的身份validation系统。 虚拟主机(通过连接)可能工作,但我不一定需要每个DNS的子域。 所以相反,我想主要的应用程序是身份validation层,其他人“安装”到那个,每个应用程序的基本path设置为一个子path。 (在快速指南中提到了基本path,但没有很好地logging)。 他们都使用MongoDB,auth层使用connect-mongodb进行会话,所以我希望他们能够在他们之间共享整个auth / session层。 Stephen写道,在另一个主题“如何在安装的快速应用程序中共享会话” 我有一个相当复杂的基于快递的Web应用程序,它被分成几个子应用程序,这些应用程序也是快速应用程序(使用app.use())… 那么如何使用app.use()来挂载一个子应用? 我只是试图使用var subApp = require('./subapp/app.js') ,而listen()只能在子应用程序中运行! module.parent ! module.parent (所以不作为一个子应用程序).​​..但似乎加载所有的子应用程序的path直接进入父应用程序。 我已经尝试使用app.set('basepath', '/subapp/') app.basepath = '/subapp/'等设置basepath ,在子应用程序本身和父应用程序中,但它doesn似乎没有任何效果。 像这样安装应用程序使得expression令人难以置信的灵活性,但目前还不清楚如何做到这一点…任何build议将非常欢迎! (如果有人为此付出努力,我很乐意分享我的每一次实施的经验教训。)

处理node.js中的require()模块引发的错误

在试图require()模块不存在的时候,在我的代码中有一点障碍。 代码循环遍历目录,并在每个文件夹上执行var appname = require('path') 。 这适用于适当configuration的模块,但会引发: Error: Cannot find module循环遇到非Error: Cannot find module时Error: Cannot find module模块。 我希望能够优雅地处理这个错误,而不是让它停止我的整个过程。 所以简而言之,如何捕获由require()抛出的错误? 谢谢!