美文网首页我爱编程
2018-06-05 Node.js入门

2018-06-05 Node.js入门

作者: 彭奕泽 | 来源:发表于2018-06-08 17:08 被阅读0次

    以下代码都写在server.js文件里

    1. Node.js的API

    1. fs

    • fs.readFile(异步)
    let fs = require('fs')  //这个模块就是node里的已个对象
    
    fs.readFile('/users/scofieldmichael/desktop/1.txt', (err, data) => {
      if (err) throw err;
      console.log(data.toString());
    });
    

    在命令行里进入当前目录运行node server.js,会调用它的回调函数,打出data(就是1.txt文件里的内容)

    • fs.readFileSync(同步)
    let fs = require('fs')
    
    let data = fs.readFileSync('/users/scofieldmichael/desktop/1.txt');
    console.log(data.toString())
    

    同步的,没有回调函数,会等第二行执行完毕再执行第三行

    2. http

    let http = require('http')
    
    let server = http.createServer(function (req, res) {
        console.log(req.url)
        // 响应头
        res.writeHead(200, {'content-type': 'text/plain'});
        //响应体
        res.write("asd");
    
        // write message body and send
        res.end("Hello, World!") 
    })
    
    server.listen(9999);
    

    命令行node server.js 9999

    2. express框架

    1. 安装

    在命令行进入目录node server.js,开启服务器

    2. 代码

    const express = require('express')
    const app = express()
    
    app.get('/', (req, res) =>
        res.send('Hello World!')  //页面里显示这个
    )
    
    app.listen(9999, () =>
        console.log('成功监听 9999!')
    )
    
    

    升级版

    const express = require('express')
    const app = express()
    const path = require('path')    //这样获得当前的绝对路径
    
    app.get('/', (req, res) => {  //访问首页
        let p = path.join(__dirname,'./index.html') //__dirname就是当前的绝对路径
        res.sendFile(p) //打出p
    })
    
    app.use('/static', express.static(path.join(__dirname, 'public')))
    //若你输入的路径是static,那么服务器会直接进入public目录
    //这样就不用在在后台一个个写路由了
    
    app.listen(9999, () =>
        console.log('成功监听 9999!')
    )
    

    上面的static路径用在html里一样有效

    <link rel="stylesheet" href="/static/1.css">
    

    这样可以直接访问到public目录里的1.css文件

    3. Koa框架

    1. 文档

    用npm安装

    2. 安装koa-send插件

    命令行npm i koa-send

    3. 命令行node server.js 9999

    const send = require('koa-send');
    const Koa = require('koa');
    const app = new Koa();
    
    // $ GET /package.json
    // $ GET /
    
    app.use(async (ctx) => {
        if ('/' == ctx.path) return ctx.body = 'Try GET /package.json';
        await send(ctx, ctx.path);
    })
    
    app.listen(9999);
    console.log('开始监听9999');
    

    在命令行开启服务器,浏览器访问http://localhost:9999/index.html就会显示index.html的内容

    4. Heroku

    看教程使用,类似一个数据库,可以把你的node代码放到网上,免费开一个node.js server(可能被墙)

    相关文章

      网友评论

        本文标题:2018-06-05 Node.js入门

        本文链接:https://www.haomeiwen.com/subject/trpmsftx.html