nodejs静态服务器

NodeJs

中文官网

英文官网

安装成功验证

判断node是否安装成功 node-v

安装node的同时会自动安装npm npm -v

如何运行node.js

我们可以创建一个test.js的文件

编辑内容为

console.log('hello');

用cmd进入该目录下 运行

$ node test.js

我们就可以看到控制台输出hello。

在我们初始化之后会出现一个package.json文件,我们可以在该文件的script中添加

"start":"node app.js"

这时可以通过下面代码对程序进行启动

$ npm start 

node模块间的通讯

由于node的代码是相互独立的两个文件之间不存在关联,如果B.js文件想引用A.js文件中的内容该怎么办呢?

这里有两种方式:

方法一

我们可以将A.js文件进行“暴露“,利用exports。在B.js中利用require对其“暴露”的内容进行接收。

例如:

我们在A.js中写

var a =10;
var b =20;
exports.num1 = a;
exports.num2 = b;

B.js中写(切记require的路径要为相对路径,默认为js文件所以’./A.js’可以简写为’./A’)

const c =require('./A');
console.log(c);
console.log(c.num1);

此时我们运行B.js的时候显示的信息就是

{ num1: 10, num2: 20 }
10

方法二

B.js的“暴露”写法为:

var a =10;
var b =20;
module.exports={
	num1:a,
	num2:b
}

两种方法效果相同。

第三方模块-npm

NPM网址

全局安装:npm install -g 包名,可以简写为npm i -g 包名;

非全局安装:npm install 包名;

卸载:npm uninstall 包名 。

npm作用:可以进行第三方包的安装

第三方nrm的使用

在我们使用npm进行下载时由于下载的地址时国外服务器所以下载速度会很慢,那么怎么解决呢?阿里巴巴公司为我们创建了一个镜像,里面内容与国外网站一样,下载速度也会更快些。

首先我们需要对nrp进行安装,因为我们整个电脑都要用,所以选择全局安装。

$ npm install nrm -g     //用于安装淘宝镜像
$ nrm ls				//用于展示镜像可用的网址
$ nrm use 网站			//用于切换下载网址

如在安装过程中遇到不顺可以手动配置淘宝镜像

$ npm config set registry https://registry.npm.taobao.org  		//配置淘宝镜像
$ npm config get registry 									//配置完成后检验是否成功
$ npm install nrm -g 										//重新安装
$ nrm ls												//查看所用的镜像	 

创建node-web项目

项目初始化

首先我们需要对文件进行初始化

$ npm  init

我们使用 npm 命令安装常用的 Node.js web框架模块 express:

$ npm install express

安装好之后,express 包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require(‘express’) 的方式就好,无需指定第三方包路径。

var express = require('express');

先对数据库的配置信息进行配置config.js。

//连库信息
module.exports = {
host     : 'localhost',
port     : 3306,
user     : 'root',
password : 'x5',
database : 'park'
}

再封装sql相关操作dbcomm.js。

const mysql = require('mysql');
const config = require('./config');
const db = {};
const pool = mysql.createPool({
    host     : config.host
    ,port     : config.port
    ,user     : config.user
    ,password : config.password
    ,database : config.database
    ,connectionLimit : 15
});

var exec = function (sql, params, callback) {
    pool.getConnection((err, con) => {
        if (err) {
            throw err;
            callback(err, null, null);
        } else {
            if (params === null || params.length == 0) {
                con.query(sql, function (err, results, fields) {
                    callback(err, results, fields);
                })
            } else {
                con.query(sql, params, function (err, results, fields) {
                    callback(err, results, fields);
                })
            }
            con.release(); //放这
        }
    });

pool.on('connection',function(){
    //console.log('创建一个连接');
});
     
//当一个回掉压入队伍等待连接的时候触发入队事件
pool.on('enqueue',function(){
  console.log('入队');
});

}

db.exec = exec;

module.exports = db;

这时我们创建后端包、前端包。

设置启动app.js,包括路由、端口号。

const express = require("express");
const exam = require("./src/com/parking/controller/Park");
const app = express();

app.use(express.static("./webContent"));//静态资源也就是存放页面文件

//gate-way zuul ->routes

app.use('/exam',exam);

app.listen(3000,function (){
    console.log("the server is started!!!");
});

书写后端的内容

值得注意由于添加、修改需要将对象流化,我们需要对数据设置格式

先书写

const bparse = require("body-parser");//body转换功能

parking.use(bparse.urlencoded({ extended: false }));

parking.use(bparse.json());

添加方法中的数据使用

var dept =req.body; 

在书写其他内同

const express= require("express");

const db= require("../../../../dbcommon");

var parking =express.Router();

const bparse = require("body-parser");//body转换功能
parking.use(bparse.urlencoded({ extended: false }));
parking.use(bparse.json());

/**
 * 查询
 */
parking.get("/showall",function(req,res){
    console.log(req.query);
    var sql="select * from parking";

    db.exec(sql,null,function(data){
    console.log(data);
    var json = {
             code:0
            ,msg:'success'
            ,data:data
    }
    res.send(json);
   })

}) ;

/**
 * 查一 
 */

parking.put("/findone/:id",function(req,res){
    var sql="select *  from parking where id = ?";
    db.exec(sql,[req.params.id],function(data){
        console.log(data);
    res.send(data);

 });
})


 /**
 *的删除方法
 */

parking.delete("/delete/:id",function(req,res){
var sql="delete from parking where id = ?";
db.exec(sql,[req.params.id],function(data){
    console.log(data);
res.send(data);
});

})

/**
修改
*/
parking.post("/update",function(req,res){
    var dept = req.body;
    console.log(dept.id)
    var sql="update parking set user_name=? ,phone =? where id =?";
    db.exec(sql,[dept.user_name,dept.phone,dept.id],function(data){
    res.send(data);
    });
    
    })


/**
 * add添加方法
 */

parking.post("/adddept",function(req,res){
    var dept =req.body;
    var sql = "insert into parking (id,user_name,phone) values(?,?,?)";
    db.exec(sql,[dept.id,dept.user_name,dept.phone],function(data){
        res.send(data);
    });

})

//定义模块
module.exports = parking;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值