NodeJS01

  • 文件读写fs

/*node对文件进行操作 引入fs(file-system)模块
* 在fs中 提供了所有的文件操作相关的API
*/

// 1. 使用require方法加载fs核心模块
var fs = require('fs');
/* 2. 读取文件
*  第一个参数:要读取的文件路径
*  第二个参数:回调函数 
*  读取失败 error 是错误对象 data 是underfined
*  读取成功 error 是null data是数据
*/
fs.readFile('./hello.txt',function(error,data){
	console.log(data.toString());
})


/* 3. 写文件
*  第一个参数: 要写入的文件路径
*  第二个参数: 要写入的文件内容
*  第三个参数:回调内容(只有error一个参数)
*/
fs.writeFile('./filewrite.txt','this is my first nodeJs.writetext',function(error){
	console.log('success')
})
  • 网络请求 

/* 
* 使用Node创建http服务器 使用核心模块:http
* 服务器的作用: 提供服务 对 数据的服务 发送请求 接收请求 处理请求 反馈(服务器发送响应)
*/ 
// 1. 加载http核心模块
var http = require('http')
// 2. 使用http.creatServer()方法创建一个web服务器,返回一个server实例
var server = http.createServer() 
/*
 * 3. 注册request请求事件 当客户端请求过来,就会自动触发服务器的request请求事件
 * 需要接收两个参数
 * request 请求对象 用来获取客户端的一些请求信息 例如请求路径(response.url)
 * response 响应对象 用来给客户端发送响应消息
 * response 中的write方法可以用来给客户端发送响应数据
 * write 可以使用多次 但是最后一次一定要使用end结束 否则客户端会一直等待
 */ 
server.on('request',function(request,response){
	console.log('收到客户端的请求了' + request.url)
// 	response.write('hello')
// 	response.end()  //不推荐使用 一般使用 response.end
//	response.end('hello nodeJS')
	/*
	* 根据不同的	请求路径 返回不同的响应结果
	* 1. 获取客户端的请求路径: response.url 获取的是端口号之后的那一部分(即以 " / "	开头)
	* 响应内容只能是 字符串 或者 二进制数据
	*/ 
    var url = request.url
	console.log(url)
	if(url ==='/'){
		response.end('index')
	}else if(url ==='/login')
	{
		response.end('login page')
	}else{
		response.end('404 not found')
	}
})
// 4. 绑定端口号 启动服务器
server.listen(3000,function(){
	console.log('服务器已经成功启动,可以通过http://localhost:3000/ 来进行访问')
})
  • require和exports 

/* require 是一个方法 1.加载模块并执行其中的代码 2.获取被加载的文件模块exports的接口对象
*  每个文件模块的export默认为一个空对象
*  node中, 模块分为: 具名的核心模块,如 fs,http  还有用户自定义的文件模块
*  使用require, 可以从外部引入其他js文件
*  相对路径:  ./  可以省略js后缀(默认require的是js文件)
*  在node中 没有全局作用域 只有模块作用域 外部和内部不能相互访问
*/ 
var result = require('./nodeExport01.js');
console.log(result) //result返回的就是require请求的js文件中exports中存储的对象
console.log((result.add(10,20))) //返回30
console.log(result.age) //返回23

//nodeExport01.js
var foo = 'aaa';
exports.foo = 'hello nodeJS';
exports.add = function(x,y){
	return x + y
}
var age = 23;
exports.age = age;

端口:IP地址用来定位计算机 端口号用来定位具体的应用程序 

  • content-type

  • 在线查询工具:http://tool.oschina.net/
var http = require('http');
var server = http.createServer()
server.on('request', function(request, response) {
	/*服务器默认使用utf8(国际标准)发送数据(编码)
	 * 但是浏览器不知道服务器使用的是utf8编码 在这种情况下 浏览器会按照当前操作系统的默认编码去编译
	 * 而中文操作系统的默认编码是 gdk 所以会出现中文乱码
	 * 在http协议中 Content-Type用来告诉对方 服务器发送的数据类型是什么
	 * text/plain 普通文本 
	 */
	if (request.url === '/plain') {
		response.setHeader('Content-Type', 'text/plain;charset=utf-8')
		response.end('今天是学习nodeJS的第一天')
	}else if(request.url ==='/html')
	{
		//不设置header 默认以html格式解析 返回hello html
		response.setHeader('Content-Type', 'text/plain;charset=utf-8')
		response.end('<p>hello html</p>') //按照字符串解析 返回<p>hello html</p>		
	}

})
server.listen(3000, function() {
	console.log('server is running...')
})

http和fs结合,发送文件中的数据

var http = require('http')
var fs = require('fs')
var server = http.createServer()
server.on('request', function(request, response) {
	if (request.url === '/') {
		fs.readFile('./index01.html', function(error, data) {
			if (error) {
				response.setHeader('Content-Type', 'text/plain;charset=utf-8')
				response.end('文件读取失败!')
			} else {
				response.setHeader('Content-Type', 'text/html;charset=utf-8')
				response.end(data)
			}
		})
	} else if (request.url === '/image') {
		fs.readFile('./img.jpg', function(error, data) {
			if (error) {
				response.setHeader('Content-Type', 'text/plain;charset=utf-8')
				response.end('文件读取失败!')
			} else {
				response.setHeader('Content-Type', 'image/jpeg;')//图片不需要指定编码
				response.end(data)
			}
		})
	}

})
server.listen(3000, function() {
	console.log('server is running...')
})
  • JavaScript Standard Style    (http://standardjs.com/) 代码编写规范

还有 airbnb javascript style

无分号代码风格,要注意以下情况: 当一行代码是以 "(" 或者  "["  或者  "反引号"  开头的时候,要在该行的前面加分号以免出现解析错误

所以有些第三方代码一开头就是;

 

注:node和npm环境变量配置:

安装好node和npm之后,在NodeJS安装目录下新建 node_global (存放 -g 下载的全局第三方包)和 node_cache 两个文件夹

cmd 设置 

npm config set prefix  "E:\NodeJS\node_global" 

npm config set cache  "E:\NodeJS\node_cache"

-g 可以在 任意路径 下 安装

如:npm install nodemon -g 安装后 输入 nodemon -v 查看是否安装成功

环境变量配置:

在系统环境中: 新建 "NODE_PATH"  路径为:"E:\NodeJS\node_global\node_modules"

在用户变量的path中添加:"E:\NodeJS\node_global"

 

重新打开cmd 输入node 进入node环境 

输入require('express')

测试node的全局路径是否都安装成功。

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值