node.js和npm以及express小结

1、node.js

node.js简单来说就是运行在服务器端的javascript,是基于Chrome的V8引擎建立的一个平台,来运行js脚本。V8引擎执行js的速度非常好,性能非常好。
常用命令:
node -v 查看node版本。
输入node 进入交互模式,执行js代码:

$ node
> console.log('Hello World!');
Hello World!

node a.js来执行js代码

2、npm

npm即node package manager,也就是node包管理器。顾名思义,它的主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。

npm install, npm install --save和npm install --save -dev的区别

  • npm install 仅仅是当我们把项目拉下来的时候,将项目中的依赖给安装了。
  • npm install --save 会将依赖写入package里的dependencies (附属国)里
  • npm install --save -dev 会将依赖写入package里的devDependencies 里面

两者的区别:devDependencies 里面的插件只用于开发环境,不用于生产环境,而 dependencies 是需要发布到生产环境的
所以,在我们开发环境中通常需要加上-dev

我们前端从后端拿数据就会出现跨域的情况,所以通常需要设置代理服务:

npm config set proxy http://proxy.example.com:8080

删除proxy:

npm delete proxy

查看安装了哪些包

npm ls

其他同事更新代码,又装了新的依赖,我们需要更新包:

npm run update

3、express

比如我们需要在本地文件用Ajax获取网络时间的时候就会出现跨域的情况:


ajax跨域.png

因为我们的协议是file协议,而ajax只允许http,https,data等形式的协议。
这个时候就需要应用到node.js的express框架:

  • 它可以设置中间件来响应http请求
  • 定义了路由表用于执行不同的 HTTP 请求动作,如默认为"/"
  • 可以通过向模板传递参数来动态渲染 HTML 页面,如为"/"渲染指定的html页面

当然啦,我们也可以用hbuilder或者webstorm内置本地服务器的编辑器来打开,这样更加的直接暴力

express的安装使用
安装:

 cnpm install express --save

安装之后,查看版本:

cnpm ls express

然后在我们的目录下新建一个express.js,代码内容:

var express = require('express');
var app = express();
 
app.get('/', function (req, res) {
   res.sendfile('./getDate.html');
})
 
var server = app.listen(8081, function () {
    console.log("服务启动成功"); 
})

然后运行这个脚本:

node express.js

打印出来"服务启动成功",即表示成功。

我们在地址栏输入http://localhost:8081/,就可以看到express.js里res.sendfile()发送的默认html页面啦!
这样就不会出现跨域的问题了。

特别需要注意的是:在express里写文件的绝对路径时,可以使用__dirname对象来用加号拼接。这个是node.js里面的当前文件的绝对路径。在js里面是用不了的

暂时就想到了这些,如果以后遇到新的问题回来继续更新。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey阅读 6,275评论 2 36
  • JavaScript 模块化编程 网站越来越复杂,js代码、js文件也越来越多,会遇到什么问题? 命名冲突; 文件...
    magic_pill阅读 1,482评论 0 1
  • npm是什么 NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具...
    build1024阅读 7,973评论 0 9
  • 1、什么是node? 它不是JS文件,也不是JS框架,而是Server side JavaScript runti...
    J_L_L阅读 1,602评论 0 4
  • 描述 npm从以下来源获取配置值,按优先级排序: 命令行标记 在命令行上放置--foo bar设置foo配置参数为...
    竹天亮阅读 44,234评论 0 8