我爱编程

2018-06-05 Node.js入门

2018-06-08  本文已影响0人  彭奕泽

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

1. Node.js的API

1. fs

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文件里的内容)

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(可能被墙)

上一篇下一篇

猜你喜欢

热点阅读