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 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;