nodejs

在这里插入图片描述
server.js

//安装express  框架  npm install express --save 
//body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。     
//cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
//multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。

const express=require('express');
//引入用户路由器
const userRouter=require('./Router/userRouter.js');
const indexRouter=require('./index.js');
//引入body_parser模块 
const bodyParser=require('body-parser')


//跨域
// const cors = require("cors");
// server.use(cors());
//后台处理跨域
// server.use(cors({
//   origin:["http://127.0.0.1:8050","http://localhost:8050"],
//   credentials:true
// }))
//创建服务器
var server=express();
//监听端口
server.listen(8050);
console.log('服务器开启!!!')
//托管静态资源到
server.use(express.static('public'));
//解析post数据为对象
server.use(bodyParser.urlencoded({
  extended:false
}));
//将用户模块路由器 装载到/user下
server.use('/user',userRouter);
server.use('/',indexRouter);

userRouter.js


//mysql驱动
const mysql = require("mysql");
//配置数据库连接池:提高数据效率
// var connection = mysql.createConnection({
//   host     : 'localhost',
//   port     :'3306',
//   user     : 'root',
//   password : '123456',
//   database : 'zy'
// });
// 连接
/*connection.connect(function (err) {
    if (err) {
        console.log('[query] - :' + err);
        return;
    }
    console.log('[connection connect]  succeed!');
});

// 查询数据
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
    if (error) throw error;
    console.log('The solution is: ', results[0].solution);
});*/
// connection.connect();
//创建路由器 
const express = require('express');
var Router = express.Router();
//添加路由
//不用中间件的话可以这样写 跨域
Router.all('*', function (req, res, next) {
   res.header("Access-Control-Allow-Origin", "*");
   res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, //Authorization, Accept,X-Requested-With");
   res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
   res.header("X-Powered-By",' 3.2.1')
   if(req.method=="OPTIONS") res.send(200);/*让options请求快速返回*/
   else  next();
})

//用户登录路由s
//url:/login  method:post
Router.get('/login',  function (req, res) {
    // var obj = req.body;
	// console.log(req.query)
    res.send( {
	  	"data":req.query, 
	  	"code": 200
	})
  
    //执行SQL语句,查看是否登录成功(使用用户名和密码两个条件能查询到数据)
// let $uname=zzy;
	// connection.query('SELECT * FROM t_user', function (error, results, fields) {
	//   if (error) throw error;
	  
	//   res.send( {
	//   	"msg": results, 
	//   	"code": 200
	//   })
	// });
 
});
//测试
Router.get("/getData", (req, res) => {
	let mobile=req.query.mobile;
	let pwd=req.query.pwd;
	
	if(mobile=="aaa"&&pwd==123){
		var parsem = { 
	    	"msg":{
	    		uname:"aaa",
	    		upwd:123
	    	},
	    	"status":1,
	    	"code": 200
    	}
		res.send(parsem)
	}else{
		res.send({
			"msg":"不存在用户或者密码错误",
			"code":200,
			"status":0
			
		})
	}
    
    //res.send(JSON.stringify(parsem))
    //console.log(JSON.parse(parsem))
    res.send(parsem)
})
Router.post("/loginSetItem", (req, res) => {
    console.log(
        JSON.parse(req.body)
    )
    let _user = req.user
    let _token = req.token
    res.send({
        code: '200',
        user: _user,
        token: _token
    })
})

//get catch   https://www.cnblogs.com/tugenhua0707/p/10807289.html
 const url = require('url');
const fs = require('fs');
const mime = require('mime');
import path from 'path';
Router.get("/catch", (req, res) => {

// 获取文件名
const { pathname } = url.parse(req.url, true);
// 获取文件路径
const filepath = path.join(__dirname, pathname);
//设置协商缓存
fs.stat(filepath, (err, stat) => {
    if (err) {
      res.end('not found');
    } else {
      // 获取 if-modified-since 这个请求头
      const ifModifiedSince = req.headers['if-modified-since'];
      // 获取最后修改的时间
      const lastModified = stat.ctime.toGMTString();
      // 判断两者是否相等,如果相等返回304读取浏览器缓存。否则的话,重新发请求
      if (ifModifiedSince === lastModified) {
        res.writeHead(304);
        res.end();
      } else {
        res.setHeader('Content-Type', mime.getType(filepath));
        res.setHeader('Last-Modified', stat.ctime.toGMTString());
        // fs.createReadStream(filepath).pipe(res);
      }
    }
  });
})


//导出路由器
module.exports = Router;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值