1. node.js 认识 (一)

时间:2023-03-09 20:37:00
1. node.js 认识 (一)

官网: (下载安装nodejs)

https://nodejs.org/en/

http://nodejs.cn/

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。

Node.js 的包管理器 npm,是全球最大的开源库生态系统。

后端流行语言:

java #C node.js

验证版本:

node -v或--version

npm -v或--version或--v或-version

js组成:

1、DOM

2、BOM

3、ECMAScript

node文件的命名:

不能用:node.js 或 nodejs.js

node 用来写服务器

http 的端口:80

https 的端口:433

创建服务器:3步

1.引入模块

2.创建服务

3.监听端口

readFile 异步读取文件(有回调函数)

readFileSync 同步读取文件(无回调函数)

ajax:Asynchronous JavaScript and XML

异常处理try...catch

try{

//有可能出错的代码

}catch(e){//error

//补救的代码 或 提示信息

}

fs.readFile("地址、路径"[,编码],回调函数(err,data){...});
fs.readFileSync("地址、路径"[,编码]);
Buffer对象

utf-8/utf8/data+""/data.toString();

exp:创建服务器:
//1.引入模块
var http = require("http");
var fs = require("fs"); //2.创建服务
var server = http.createServer(function(req,res){
var url = req.url;
console.log("url:",url); fs.readFile("www"+url,function(err,data){
if (err) {
res.end("404");
}else{
res.end(data);
}
});
}); //3.监听端口
server.listen(9000,function(){
console.log("服务器已开启:http://localhost:9000");
});

服务器运行:

1.打开服务器:

1. node.js 认识 (一)

2.浏览器访问:

1. node.js 认识 (一)

3.服务器响应:

1. node.js 认识 (一)

登录注册

user.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script src="jquery.js"></script>
<script>
$(function(){
var $oUser = $("#username");
var $oPass = $("#pass");
var $oLogin = $("#login");
var $oReg = $("#reg"); $oLogin.click(function(){
$.ajax({
url:"/login",
data:{
user:$oUser.val(),
pass:$oPass.val()
},
dataType:"json",
success:function(json){
console.log(json);
} });
});
$oReg.click(function(){
$.ajax({
url:"/reg",
data:{
user:$oUser.val(),
pass:$oPass.val()
},
dataType:"json",
success:function(json){
console.log(json);
} });
});
});
</script>
<body>
用户名:<input id = "username" type="text" value="aaa"/><br />
密码: <input id ="pass" type="text" value="123"/><br />
<input id = "login" type="button" value="登录"/>
<input id = "reg" type="button" value="注册"/> </body>
</html>

user.js

var http = require("http");
var fs = require("fs");
var users = {aaa:123};
var server = http.createServer(function(req,res){
var url = req.url;
console.log("url:",url);
var GET = {}; if(url.indexOf("?") != -1){//接口
var arr1 = url.split("?");
url = arr1[0];
var arr2 = arr1[1].split("&");
for(var i = 0; i < arr2.length; i++){
var arr3 = arr2[i].split("=");
GET[arr3[0]] = arr3[1];
}
console.log("url:",url,"GET:",GET); if(url == "/login"){
var username = GET.user;
var password = GET.pass;
if(!users[username]){
res.end('{"error":0,"msg":"用户名或者密码不正确"}');
}else{
if(users[username] == password){
res.end('{"error":0,"msg":"登录成功"}');
}else{
res.end('{"error":0,"msg":"用户名或者密码不正确"}');
}
}
}else if(url == "/reg"){
var username = GET.user;
var password = GET.pass;
/*res.end('{"error":1,"msg":"reg"}');*/
if(users[username]){
res.end('{"error":1,"msg":"用户名存在"}');
}else{
users[username] = password;
res.end('{"error":1,"msg":"注册成功"}');
}
} }else{
fs.readFile("www"+url,function(err,data){//文件
if(err){
res.end("404");
}else{
res.end(data);
}
})
}
}); server.listen(9000,function(){
console.log("服务器已打开");
})

user2.js:引入url模块直接获取json对象

var http = require("http");
var fs = require("fs");
var modUrl = require("url");
var users = {aaa:123};
var server = http.createServer(function(req,res){
var url = req.url;
console.log("url:",url); var GET = {};
var urlObj = modUrl.parse(url,true);
url = urlObj.pathname;
GET = urlObj.query; if(url == "/login"){
var username = GET.user;
var password = GET.pass;
if(!users[username]){
res.end('{"error":0,"msg":"账号或密码输入错误!"}');
}else{
if(users[username] == password){
res.end('{"error":0,"msg":"输入正确"}');
}else{
res.end('{"error":0,"msg":"账号或密码输入错误!"}');
}
}
}else if(url == "/reg"){
var username = GET.user;
var password = GET.pass;
if(users[username]){
res.end('{"error":1,"msg":"用户名已存在,请重新输入"}');
}else{
users[username] = password;
res.end('{"error":1,"msg":"注册正确"}');
}
}else{
fs.readFile("www" + url,function(err,data){
if(err){
res.end("404");
}else{
res.end(data);
}
})
}
});
server.listen(9000);

运行效果:

1. node.js 认识 (一)

1. node.js 认识 (一)