Node.js 介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jx_zls/article/details/88921175

一. Node 核心模块介绍

1. fs 文件数据读取模块

a. 数据读取
1. 引入fs模块
	var fs = require('fs')

数据读取 fs.readFile(路径, callBack(error, data))返回二进制数据

fs.readFile('./hello.txt', function(error, data){
    if(error){
        console.log('error', error)
    }
    if(data){
        console.log('data', data) // data <Buffer 68 65 6c 6c 6f 20 6e 6f 64 65 2e 6a 73>
        console.log('data', data.toString()) // data hello node.js
    }
})
b. 数据写入

数据写入fs.writeFile(路径, 数据, callBack(error))

fs.writeFile('./hello.txt', '是否写入成功', function(error){
    if(error){
        console.log('写入error', error)
    }else{
        console.log('写入success')
    }

})

2. http 模块使用

a. 构建web服务器
1. 引入http
    var http = require('http')
2. 创建web服务器
	var server = http.createServer()
3. 注册request请求

a. 响应客户端请求,必须以end()结束,否则客户端会一直等待回应,par只能为二进制数据和字符串类型
b. request.url 为请求的路径

	server.on('request', function(request, response){
	        console.log('收到客户端的请求', request.url) 
	        response.write('hello')
	        response.write('My First') 
	        response.end(par)
	})
4. 启动服务
	server.listen(3000, function(){
	    console.log('服务器启动成功,可以进行访问')
	})
  1. 测试
    a. cd到当期文件目录
    b. node 文件名.js, 查看服务器是否正常 例如:node index.js
    c. 在浏览器中输入localhost:3000查看打印是否正常
    服务器响应结果

浏览器展示效果

3. url模块使用

1. 引入url 模块
	var url = require('url')
2. url 解析结果
	var obj = url.parse('/products?name=ere&message=erere')
	console.log(obj)
解析结果
	  Url {
	  protocol: null,
	  slashes: null,
	  auth: null,
	  host: null,
	  port: null,
	  hostname: null,
	  hash: null,
	  search: '?name=ere&message=erere',
	  query: name=ere&message=erere,
	  pathname: '/pinglun',
	  path: '/pinglun?name=ere&message=erere',
3. url.parse(路径, true) ,观察query属性
	var obj = url.parse('/products?name=ere&message=erere', true)
	console.log(obj)
	
解析结果
	  Url {
	  protocol: null,
	  slashes: null,
	  auth: null,
	  host: null,
	  port: null,
	  hostname: null,
	  hash: null,
	  search: '?name=ere&message=erere',
	  query: { name: 'ere', message: 'erere' },
	  pathname: '/pinglun',
	  path: '/pinglun?name=ere&message=erere',

4. 模块化

1. exports 和 Module.exports 的联系与区别

每个模块中都有一个module对象,可以把需要导出的成员都挂载到 module.exports 接口对象中

   moudle.exports.xxx = xxx

但这样使用起来有点麻烦, Node 为使用方便,同时在每一个模块中都提供了一个成员叫:exports

	exports === module.exports

当一个模块要导出单个成员的时候,必须使用module.exports = xxx的形式,exports = xxx这种方法是不起作用的,module.exports=xxx的方式可以导出单个成员,exports只能通过exports.xxx的方式导出

2. 模块作用域

模块中定义的变量只在本模块中生效,在其他模块无法访问,没有全局作用域,只有模块作用域,可以使用通过exports.xxx = xxx的方法导出,在其他模块通过require('模块名')引入使用

二. npm 配置简单介绍

a. 项目快速构建
1. mkdir 创建子目录
2. npm init / npm init -y 区别

npm init可以生成package.json包描述文件,此文件中可以声明项目的入口函数以及一些使用的依赖信息,npm initnpm init -y不同之处在于前者是使用向导的方式一步一步引导设置,后者则是快速创建文件,可以创建过后修改信息

3. npm install / npm install + 包名 / npm install --save + 包名

npm install 用来安装node_modules第三方模块
npm install + 包名 安装所需要使用的第三方包,例如:npm install jQuery,但是此种方法安装方法不会再package.json的包描述文件添加相应的依赖,如果此时将node_modules删除的话,无法获取到相应依赖的信息,只能手动重新添加
npm install --save + 包名 此命令也是安装需要的第三方包, 此方法可以在package.json中的devDependencies项中添加相应的依赖信息,即使删除node_modules也可通过npm install直接安装三方库,无需每个手动安装推荐

猜你喜欢

转载自blog.csdn.net/jx_zls/article/details/88921175