node.js 是一个让javascript运行在服务端的开发平台

node.js的环境部署

1.下载安装包

https://nodejs.org/en/

安装后 打开cmd的dos窗口

运行node

console.log('success')

编写一个demo.js并保存到nodejs的安装目录里

consloe.log('学习nodejs')

在dos里运行demo.js 可以看到输出的学习nodejs

node.js命令行工具

node -v 查看版本

node -e ‘console.log("hello word")’;  直接运行

node  直接进入编译模式

console.log('1111')

第一行是输入、第二行是返回值

建立HTTP服务器

 var http = require('http');
http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.write('<h1>nodejs</h1>');
res.end('<p>视频PCAT</p>');
}).listen(2000);

保存为demo2.js并用cmd来运行

在浏览器中输入:localhost:2000

回调函数

1.异步式读取文件

var fs = require('fs');
fs.readFile('file.txt','utf-8',function(err,data){
if(err){
console.log(err);
}else{
console.log(data)
}
});
console.log('end.');
结果:
end.
Contents of the file.

在nodejs目录里编写一个file.js

 var fs = require('fs');
fs.readFile('file.txt','utf-8',function(err,data){
if(err){
console.log(err);
}else{
console.log(data)
}
});
console.log('end.');

在nodejs目录里创建一个file.txt文件并写入hi,i'm a file.txt

打开cmd 执行file.js

同步式读取文件

var fs = require('fs');
var data=fs.readFileSync('file.txt','utf-8');
console.log(data);
console.log('end.');

显示如下

事件

1.普通事件的对象  (在nodejs目录里创建一个event.js)

//声明事件对象
var EventEmitter = require('events').EventEmitter;
var event = new EventEmitter();
//注册事件
event.on('some_event',function(){
console.log('这是一个自定义的事件');
})
//在1s时间之后触发事件
setInterval(function(){
event.emit('some_event');
},1000);

显示结果如下:

node.js的事件循环机制

node.js程序是由事件循环开始,到事件循环结束,所有的逻辑都是事件的回调函数。

如何使用自定义事件呢

事件的回调函数在执行的过程中,可能会发出IO请求或直接发射(emit)事件,这I型完毕后再返回事件循环。

node.js中的模块和包的应用:

1.在nodejs安装目录中创建一个模块 model.js

var  name;
exports.setName=function(theName){
name = theName;
}
exports.sayHello=function(){
console.log('hello'+name);
}

2.在nodejs安装目录中创建一个模块 getModel.js

var myModel = require('./model');
myModel.setName('hehe');
myModel.sayHello();

node.js中require不能重复加载模块 只能包含一次

我们把一个对象封装到模块中引入模块 来实现多次调用

例:在node的安装目录中创建一个Sing.js

function hello(){
var name;
this.setName = function(theName){
name = theName;
}
this.sayHello = function(){
console.log('hello'+name);
}
}
module.exports=hello;

在node的安装目录中创建一个getSing.js

var hello = require('./Sing');
var he = new hello();
he.setName('hhehe');
he.sayHello();
var he1 = new hello();
he1.setName('aaaa');
he1.sayHello();

包的创建

创建一个package包

1. package.json必须在包的顶层目录下

package.json里面代码

{
"main" : "./lib/index.js"
}

2.创建bin文件夹  里面放二进制文件

3.创建doc文件夹  里面放文档

4.创建test文件夹   里面放测试的

5.创建lib文件夹  放一个index.js

index.js里面代码:

exports.sayHello = function(){
console.log('this is a easy package');
}

具体package文件夹下的所有文件

在node安装目录里创建一个getPackage.js

getPackage.js里面的代码:

var pac = require('./package');
pac.sayHello();

在cmd下测试如下:

node.js在调用某个包的时候。会检查包中的package.json文件中的main字段,将其作为包的 接口模块,如果package.json或main字段不存在,会尝试寻找index.js或index.code作为包的接口。

package.json的规范属性

如何用包管理器

1.获取一个包

npm [install/i] [package_name]

例如:安装express包

npm i express

卸载包

npm uninstall 报名 【-g】

查看当前报名

npm list

帮助链接:http://www.cnblogs.com/bluefrog/archive/2012/08/14/2639085.html

2.本地模式和全局模式

npm在默认情况下会从http://npmjs.org搜索或下载包 将包安装到npm_modules

a.默认是npm install包名 作为本地模式

b.全局模式

npm install -g 包名

用cmd创建包里里面的package.json

安装包

查看

测试

nodejs(1)的更多相关文章

  1. 初步使用nodejs(一)

    初步使用nodejs(一) 首先打开 https://nodejs.org/,点击INSTALL下载安装 安装完成后 打开CMD 输入node –v 验证是否正常 至此,NODEJS安装完成. 下载W ...

  2. nodejs(14)express获取url中的参数

    问号传参获取参数 获取 http://127.0.0.1:3001/user?id=10&name=zs 中的查询参数: 直接使用 req.query 获取参数即可: 注意:URL 地址栏中通 ...

  3. (一)、NodeJS (转载)

    NodeJS基础                                                 ------ 转载自阿里巴巴 什么是NodeJS JS是脚本语言,脚本语言都需要一个解 ...

  4. Nodejs(待补充)

    Nodejs从入门到精通(待补充) 首先安装n模块: npm install -g n 第二步: 升级node.js到最新稳定版 n stable 是不是很简单?! n后面也可以跟随版本号比如: n ...

  5. 前端笔记之NodeJS(四)MongoDB数据库&Mongoose&自制接口&MVC架构思想|实战

    一.MongoDB数据库 1.1 NoSQL简介 随着互联网web2.0网站的兴起,传统的SQL数据库(关系数据库)在应付web2.0网站,特别是超大规模和高并发的SNS(social network ...

  6. 前端笔记之NodeJS(二)路由&REPL&模块系统&npm

    一.路由机制(静态资源文件处理) 1.1 Nodejs没有根目录 MIME类型:http://www.w3school.com.cn/media/media_mimeref.asp 在Apache中, ...

  7. 前端笔记之NodeJS(一)初识NodeJS&内置模块&特点

    一.NodeJS简介 NodeJS是开发服务器后台的东西,和PHP.JavaEE.python类似,和传统的浏览器的关注DOM的JS完全不同,将JavaScript触角伸到了服务器端.内核是Chrom ...

  8. 【nodejs】初识 NodeJS(二)

    上一节我们构建了一个基础的 http 服务器,我们可以接收 http 请求,但是我们得做点什么吧 – 不同的 http 请求,服务器应该有不同的响应. 路由模块 处理不同的 http 请求在我们的代码 ...

  9. 【nodejs】初识 NodeJS(一)

    构建一个基础的 http 服务器 需要引用 http 模块,http 模块是 node.js 的内置模块. var http = require('http'); http.createServer( ...

  10. nodejs(三) --- nodejs进程与子进程

    嗯,对于node的学习还远远不够,这里先做一个简单的api的记录,后续深入学习. 第一部分:nodejs中的全局对象之process进程对象 在node中的全局对象是global,相当于浏览器中的wi ...

随机推荐

  1. Window 消息大全

    消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序. 消息本身是作为一个记录传递给应用程序 ...

  2. System.Data.OleDb操作access数据库类,【bubuko.com】

    access数据库在应用了System.Data.OleDb后操作会很方便,这是一个常用的数据库操作类,其中两个方法,一个是返回datatable的,一个是执行sql语句返回影响记录的(一般是inse ...

  3. winform中dataGridView隔行显示不同的背景色,鼠标移动上显示不同颜色,离开后变回原色

    winform中dataGridView隔行显示不同的背景色,鼠标移动上显示不同颜色,离开后变回原色 先设置奇数行颜色,这个有个自带的属性AlternatingRowsDefaultCellStyle ...

  4. javascript工具函数

    第一部分 JavaScript工具函数 转义特殊字符为html实体   HtmlEncode: function(str){ return str.replace(/&/g, '&') ...

  5. Python入门2

    字符串操作 字符串是语言中使用最多的,下面我们来看看python为字符串提供哪些方法: 1.upper().lower().title() 这3个方法都是返回一个新的字符串.重要性:** name = ...

  6. ubuntu死机怎么办

    在使用ubuntu的时候由于各种复杂的因素,如软件不兼容,误操作等问题导致"死机"怎么办呢?下面我们来看看如何解决这问题...   可以打开终端模拟器   1 ctrl+alt+t ...

  7. Python中对字节流/二进制流的操作:struct

    前言 前段时间使用Python解析IDX文件格式的MNIST数据集,需要对二进制文件进行读取操作,其中我使用的是struct模块.查了网上挺多教程都写的挺好的,不过对新手不是很友好,所以我重新整理了一 ...

  8. ios打包出来为pkg的处理方法

    Add LSRequiresIPhoneOS YES to your Info.plist The key can be found as Application requires iPhone en ...

  9. Oracle补习班第九天

    Better to light one candle than to curse the darkness. 与其诅咒黑暗,不如点亮烛光! 1,用SQL备份数据库数据文件 sqlplus / as s ...

  10. php 获取远程图片保存到本地

    php 获取远程图片保存到本地 使用两个函数 1.获取远程文件 2.把图片保存到本地 /** * 获取远程图片并把它保存到本地 * $url 是远程图片的完整URL地址,不能为空. */ functi ...