node.js

1.安装node.js

Node.js安装包及源码下载地址为:https://nodejs.org/en/download/

2.建立js文件,输入

var http = require('http');

http.createServer(function (request, response) {

    // 发送 HTTP 头部 
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});

    // 发送响应数据 "Hello World"
    response.end('Hello World
');
}).listen(8888);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

3.找到Node.js command prompt,输入文件路径,使用 node 命令执行以上的代码:

node server.js
4.接下来,打开浏览器访问 http://127.0.0.1:8888/,就可以写着 "Hello World"的网页。
5.安装Express开发框架:
//命令行输入命令  
  1.         npm install -g express
  2.         npm install -g express-generator

6.通过express建立项目

    1. 新建项目
      1. //命令行输入命令  
      2.         express -t ejs newsproject  或者 express -e newsproject

    2.  按照提示进入项目目录,运行npm安装
      1. //进入项目目录  
      2.         cd newsproject  
      3. //文件夹中安装npm
      4.         npm install  

    3.  运行项目
      1. //项目目录下运行命令  
      2.   node app.js
7.安装模块
进入项目文件夹
  1. //项目目录下运行命令  
  2.   cnpm install express -save ,    cnpm install superagent -save ,   cnpm install cheerio -save
  3. 此时没有报错就是安装成功了,打开文件夹,发现里面多了写文件。说明模块已经依赖成功,可以正式的编写代码了

     8.使用html文件

app.engine("html",require("ejs").__express); 
app.set('view engine', 'html');

cheerio模块

var fs = require('fs');//载入模块
var cheerio = require('cheerio');
var iconv = require('iconv-lite');//结果中有乱码,问题原因是fs模块不支持中文。
//通过iconv-lite先解码为中文解决
var myHtml = fs.readFileSync("a.html");//首先将网页读取为一个字符串
var $ = cheerio.load(iconv.decode(myHtml, 'gbk'));//传给cheerio.load函数,
//返回值即是一个cheerio对象(类似于一个jquery对象)
var t = $('html').find('hr');//然后使用find函数,通过selector查找hr元素。
var t2 = t.nextAll();//再调用 nextAll函数得到hr元素的所有兄弟结点。

t2.each(function(i, elem) {
//最后在each函数中, 通过text函数将所有包含问题的元素的见容打印出来。
    getContent($(this));
    console.log($(this).text());
});

实例详解

创建页面,每创建一个页面,也要增加一个js文件,如图所示,增加一个register.ejs,就要在router中增加一个register.js。

router下js作用就是链接到页面

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
   res.render('register', { title: 'Express' });
});

module.exports = router;

然后再主要运行的app.js中添加相应的代码

var register = require('./routes/register');
app.use('/register', register);

再添加一个页面实现数据连接config文件夹下的config

var express = require('express');
var router = express.Router();
var mysql = require("mysql");
//使用连接池可以帮助我们更好的管理数据库连接。数据库连接池可以限制连接的最大数量,复用已有的连接等。
var pool = mysql.createPool({//连接池

    host: 'localhost',
    user: 'root',
    password: '123456',
    database: 'mysql'

});
出现 cannot read property query of undefined 情况,可能是数据库没连对
function query(sql,callback){
    pool.getConnection(function(err,connection){//创建的连接池中获取到一个我们需要的连接
        connection.query(sql, function (err,rows) {//使用回调函数的参数connection来查询数据库
            callback(err,rows); 
            connection.release();//释放连接  
        });
    });
}

exports.query = query;

主页面显示数据 index.ejs

var express = require('express');
var router = express.Router();
var mysql=require('mysql');
var db = require("../config/config");//引入数据连接文件

/**
 * 显示数据页
 */
router.get("/",function(req,res,next){
    db.query("select * from users",function(err,rows){
        if(err){
            res.render("index",{title:"用户列表",datas:[]});
        }else {
            res.render("index",{title:"用户列表",datas:rows});
        }
    });
});

   router.get('/', function(req, res, next) {
   res.render('index', { title: 'Express' });
});

module.exports = router;
 
原文地址:https://www.cnblogs.com/cindy-hmy/p/7274280.html