• nodejs笔记四--创建一个最简单的 express 应用


    express 是 Node.js 应用最广泛的 web 框架,利用 express 可以实现很多的web应用;首先需要需要得到一个express。

    新建一个文件夹叫lesson1,进去里面安装 express;

    mkdir lesson1 && cd lesson1
    npm install express

    安装完成后,我们的 lesson1 目录下应该会出现一个 node_modules 文件夹;里面如果出现 express 文件夹则说明安装成功。

    然后再来安装jade模板引擎;

    npm install jade

    node_modules 文件夹里面如果出现 jade 文件夹则说明安装成功。

    或者 npm命令提供更清晰直观的显示:

    npm list

    在lesson1目录下面新建视图文件夹views,里面存放express所需要引用的视图文件;在views文件夹下面新建index.jade,写入代码:

    doctype
    html
        head
            meta(charset="utf-8")
            meta(content="IE=edge",http-equiv="X-UA-Compatible")
            title #{title}
        body
            h1 #{title}

    新建一个 app.js 文件,写入代码:

    // 引入 express 模块
    var express = require('express') 
    // 调用 express 实例
    var app = express();
    // 定义视图路径
    app.set('views', './views');
    // 定义视图文件模板引擎
    app.set('view engine', 'jade');
    
    app.get('/', function(req, res) {
        res.send('hello world')
    });
    app.get('/list/:id', function(req, res) {
        res.send('这是列表页')
    });
    app.get('/index/', function(req, res) {
        res.render('index', {
            title: '这是首页',
        })
    });
    // 监听端口
    app.listen(3000, function() {
        console.log('app is listening at port 3000');
    })

    执行 node app.js

    这时候我们的 app 就跑起来了,终端中会输出 app is listening at port 3000。这时我们打开浏览器,访问 http://localhost:3000/,会出现 Hello World。如果没有出现的话,肯定是上述哪一步弄错了,自己调试一下。

    此时,再http://localhost:3000/后面加上index,可以看到我们模板文件已行可以获取到了;

    补充知识:使用supervisor提高nodejs调试效率

    在开发nodejs程序,调试的时候,无论你修改了代码的哪一部分,都需要重启服务才能生效。这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。supervisor 可以帮助你实现这个功能,它会监视你对代码的改动,并自动重启 Node.js。

    supervisor的安装也很简单:

    直接用npm安装既可,键入命令: npm -g install supervisor

    这里注意一点的就是,supervisor必须安装到全局,如果你不安装到全局,错误命令会提示你安装到全局。

    如果不想安装到默认的全局,也可以自己修改全局路径到当前路径

    npm config set prefix "路径"

    安装完以后就可以用supervisor 来启动服务了。

    supervisor app.js
  • 相关阅读:
    Git报错:remote: HTTP Basic: Access denied的解决方法
    扩展模块之ConfigParser模块
    pyftplib
    kafka
    Android MarqueeTextView : 轻松实现文本滚动(跑马灯)效果
    nx
    ScorpionX-RX-64
    SDWebImage源码解读
    iOS 性能优化及AFNetworking源码解析
    vue使用g6做流程图
  • 原文地址:https://www.cnblogs.com/jone-chen/p/5344078.html
Copyright © 2020-2023  润新知