以下代码都写在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(可能被墙)
网友评论