一、什么是node
解释:node是一个服务器端的JavaScript解释器;
node本身运行V8 JavaScript;
二、node的特点
1.模块化(模块需下载,只需下载一次)
npm install express -D:下载到开发环境
npm install express -S:下载到生态环境
npm install express --save:项目运行时依赖
npm install express --save:开发时时依赖
node的框架
express
npm install express -g // -g 全局安装
npm install express – 下载最新版本
下载速度慢?
npm install nrm -g //全局安装,代理映射库 ,可以提高 下载速度
nrm ls //显示可能资源有哪些
nrm use tao //使用淘宝库
nrm ls //看星号在那里,就说明,当明使用的谁
npm install express@3 – 指定下载版本
文件,在路径下的node_modules文件夹
这文件是必须使用的。可手动添加到项目中
另,可以直接下载到项目,做为项目依赖
npm install express@3 --save-dev
2.IO异步操作
3.时间驱动
4.node中的js支持ECMA,不支持DOM和BOM操作
5.函数式编程
三、node.js项目的文件构架
public – 静态资源文件(二阶段写的内容,html,css ,js ,img等)
view - 视图
router - 模块包
app.js - 入口文件,主要运行文件
package.json – json文件
package.json创建方式:输入如下命令,然后一直回车就好
项目配置
1.引用框架
//引用框架
var express =require('express');
//搭建服务
var app = express();
//配置端口号
app.listen(8081,function () {
console.log('项目启动');
});
2.配置静态文件访问路径
app.use(express.static(_dirname+'/public'));
//_dirname 当前目录的绝对路径
3.配置图标
(1)下载图标的模块
npm install server-favicon -D
(2)引入模块
require('server-favicon ')
(3)使用模块
app.use(favicon(_dirname+’/public/favicon.ico '))
4.配置日志文件
(1)下载日志模块
npm install morgan -D
(2)引用日志模块
require(‘morgan’)
(3)使用日志模块
app.use(morgan(‘dev’))
5.路由
get请求
app.get('接口',function (request,response) {
request.query(); //接收数据
response.send(); //返回数据
});
post请求(需下载模块)
下载:
npm install body-parser
引用:
require('body-parser')
使用:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
app.post('/register',function(request,response){
request.body;
response.send();
});
//关于页面重定向
app.get('/',function(req,res){
res.redirect('/login.html')
});
四、服务器搭建
作用
1.和前台进行数据交互,接受前台的数据,给前台发送数据;
2.操作数据库
3.能让所有用户访问到你的页面(让用户访问到你的服务器)
当前端访问页面时,给前端返回数据`
/* 引入http模块*/
const http = require("http");
/*搭建服务器*/
const server = http.createServer(function (request,response) {
/*回调函数,只要有人访问服务器就会执行*/
response.write('aabc'); //给前端返回的数据
response.end();
console.log('来了来了'+request.url);
});
/*配置端口号*/
server.listen(9999); //里面的端口号自己随便起
关于端口号
1.在http协议中1024以下作为备用端口,不建议使用
2.端口号的范围:1-65535
3.如果你的机器上有端口号占用,换一个
4.特殊端口号80,如果是80,在访问页面的时候可以不用写
五、文件模块
作用:
1.针对不同的地址返回不同的页面
/*引入http模块*/
const http = require("http");
/*引入文件模块*/
const fs = require("fs");
/*搭建服务器*/
const server = http.createServer(function (request,response) {
console.log("请求来了");
console.log(request.url); //请求的地址
var pathName="";
if(request.url == "/"){
pathName="/index.html";
}else{
pathName = request.url;
}
/*file-system文件操作*/
fs.readFile("public"+pathName,"utf-8",function (err,data) {
if(!err){
response.write(data);
response.end();
}else{
console.log(err);
}
})
})
server.listen("8888"); //监听
六、访问数据库
操作:
1.下载mysql模块
命令语句:npm install mysql --save
2.引用数据库
var mysql = require(mysql’);
3.与数据库建立连接
/*与数据库建立连接*/
var db = mysql.createConnection({
host:'localhost', //数据库地址
user:'root', //账号
password:'root', //密码
database:'oneDay' //数据库名称
});
var sql ='SELECT * FROM a';
4.执行sql语句
/*执行sql语句*/
db.query(sql,function (err,data) {
if (err){
console.log(err);
}
else {
console.log(data);
}
});