zoukankan      html  css  js  c++  java
  • 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;
     
  • 相关阅读:
    虚方法(virtual)和抽象方法(abstract)的区别
    IT社区
    C#中动态加载和卸载DLL
    应用程序体系结构
    Enterprise Architect 7.0入门教程
    jQuery插件开发基础1
    asp.net页面事件执行顺序
    codesmith4.1破解版
    在Web.config配置文件中自定义配置节点
    小巧实用的节拍器软件FineMetronome介绍 原创
  • 原文地址:https://www.cnblogs.com/cindy-hmy/p/7274280.html
Copyright © 2011-2022 走看看