Nodejs第一天

Posted by xinxin on June 14, 2019

webpack

gulp

npm

https://www.nodebeginner.org/index-zh-cn.html

http://javascript.ruanyifeng.com/

https://cnodejs.org/

创建js脚本文件

使用命令行工具到所属的文件

使用node 文件名 运行这个程序

nodejs没有bom或者dom

运行以下会报错

 [pandas.html](../../../../../../home/chi/pandas.html) console.log(Window)
console.log(document)

浏览器中的JavaScript没有文件操作的能力

nodejs中的JavaScript有操作文件的能力

读文件

readFile

第一个参数是文件路径

第二个参数是回调函数

var fs=require("fs");
fs.readFile("01-3.txt",function(error,data){
    //读取成功
    //     data  数据
    //     error null
    //  失败
    //     data  undefined
    //     error 错误对象  
    //通过判断error来判断文件读写成功
    if(error){
         console.log("读取文件失败");
         return;
    }
console.log(data.toString());// 文件的打开一般以二进制方式
})

写文件

writeFile()

第一个参数是文件路径

第二个参数是文件内容

第三个参数是回调函数

fs.writeFile("01-3.txt","大家好我叫傻逼",function(error){
    if(error){
    console.log("写入失败");
    }
})
//加载http核心模块
var http=require("http")
//使用http.createServer()方法创建一个web服务器
//返回一个sever实例
var server=http.createServer()
server.on("request",function(){
console.log("copy that")
})
server.listen(3000,function(){
console.log("服务器启动成功");    
})
//使用http://localhost:3000/访问这个服务器

//在服务器端就会有收到请求的命令


请求和响应

var http=require("http")
var server=http.createServer()
//request请求事件
//需要接受两个参数
//Request
//  请求对象可以获取客户端的一些请求信息
//Response
//  响应对象可以用来给客户端发送响应消息
server.on("request",function(Request,Response){
    if(Request.url=="/index"){
        Response.write("hello");
    }
    if(Request.url=="/login"){
        Response.write("login");
    }
    if(Request.url=="/register"){
        Response.write("register")
    }
    if(Request.url=="/haha"){
        Response.write("haha");
    }
Response.end();
});
server.listen(3000,function(){
console.log("服务器启动成功");    
})

浏览器默认端口号80请求

res.end()

中参数只能是字符串或者二进制数据

端口号

require是一个方法,调用不同的模块

1.fs http内置模块

2.用户自己编写的文件模块

​ 相对路径必须./

3.npm(待补充)

文件模块fs

http模块

var http=require(“http”)

os模块

path处理路径

node中的模块,执行多文件

node中没有全局作用域只有模块作用域

模块与模块之间的通信

把所有被挂载的外部成员 加载到exports

所有联网的程序都需要进行网络通信

计算机中只有一个物理网卡,而且同一个局域网,网卡地址是唯一的

网卡是通过唯一的id进行定位

dns将域名转换为ip地址

ip地址用于定位计算机

端口号用来定位具体的应用程序

(所有通讯(联网)软件都必须有端口号)

req.socket.remoteAddress获取客户端的地址

req.socket.remotePort获取客户端的端口号

不要占用常用的端口号

中文乱码的问题

在http协议中 content-type 就是告诉对方发送数据的内容类型是什么

res.setHeader("Content-Type","text/plain;charset=utf-8")//应该写到最前   写在write之后会报错
res.write("hello 世界")

//类型必须为html
res.setHeader("Content-Type","text/html;charset=utf-8")
res.write("<h1>hello 世界</h1>")