nodejs的一些理解

网络上很多文章都已经描述过nodejs了,我也就不多说了,最近一直在研究javascript 由浅入深的也开始研究nodejs了。现在就我研究的成果写成文章备用(主要是怕忘了)
1 首先是nodjs是模块化管理。用模块定义各种功能。那么nodejs是如何让这些模块运行的呢。研究了好几天,才发现问题的由来。用npm安装了一些先有模块。却不知道应该怎么用。网上搜了大堆信息也没弄明白个所以然。亲自动手利用代码来学习吧。
在命令行里直接用npm install -g xxxx模块 可以去npm官方网站下载并安装(或更新)模块 如果使用-g的话说明是全局安装(环境变量里有path=C:\Users\Administrator\AppData\Roaming\npm)也就是把模块下载后解压缩到C:\Users\Administrator\AppData\Roaming\npm里面,发现这个文件夹里竟然有.cmd后缀的批处理文件。这下清楚了。我们在windows里直接运行nodejs程序的时候为什么不用进入node环境就能运行原因在这。批处理文件替我们做了这些工作。我怀疑-g的主要功用就是生成一个批处理文件,比如我用npm install -g node-inspector
/

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\node_modules\node-inspector\bin\inspector.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  "%~dp0\node_modules\node-inspector\bin\inspector.js" %*
)


方法1.
我们可以直接双击这个批处理文件运行js程序。(运行批处理)
方法2.
也可以在任何地方使用dos命令窗口输入node-inspector运行程序(运行批处理)
方法3.
其实我们大可直接在C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-inspector\bin文件夹找到inspector.js然后 shift+右键 此处打开命令窗口(dos),输入node inspector.js 。(通过node 运行,官方方法)
方法4.
第四种方法特殊可以利用快捷方式来运行
先创建一个node.exe的快捷方式,然后在快捷方式选项卡中的目标里添加参数
比如“D:\Program Files (x86)\nodejs\node.exe” C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-inspector\bin\inspector
这里C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-inspector\bin\inspector就是参数
点击快捷方式直接运行即可

如果要调试程序我们可以打开inspector 然后呢写一个程序 比如helloworld.js。我放到了node.exe同名目录下
/

var http = require('http'); 
var e=exports; 
exports.test=5;
var r=require;
var m=module;
var n=__filename,d=__dirname;
http.createServer(function(req, res) {  
    res.writeHead(200, {  
        'Content-Type': 'text/plain'  
    });  
    res.end('Hello World\n'+e+r+m+n+d);  
}).listen(1337, "127.0.0.1");  
console.log('Server running at http://127.0.0.1:1337/');  

//
利用创建的快捷方式“D:\Program Files (x86)\nodejs\node.exe” C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-inspector\bin\inspector
和快捷方式“D:\Program Files (x86)\nodejs\node.exe” –debug helloworld.js
来启动程序
现在我们打开chrome浏览器http://127.0.0.1:8080/debug?port=5858来调试程序吧。

(function (exports, require, module, __filename, __dirname) { 
var http = require('http'); 
var e=exports; 
exports.test=5;
var r=require;
var m=module;
var n=__filename,d=__dirname;
http.createServer(function(req, res) {  
    res.writeHead(200, {  
        'Content-Type': 'text/plain'  
    });  
    res.end('Hello World\n'+e+r+m+n+d);  
}).listen(1337, "127.0.0.1");  
console.log('Server running at http://127.0.0.1:1337/');  
});

/
我们写的程序竟然变成了这样。原来我们的js程序也被当做module了。好 那么exports, require, module, __filename, __dirname都带表什么呢!

这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值