node.js和express框架学习

访问http://nodejs.cn/api/学习常用api

创建一个server文件夹,新建User.js,写入

module.exports = {
  userName: 'jack',
  sayHello: function () {
    return 'hello'
  }
}

同级目录下创建demo.js文件并写入

let user = require('./User')
console.log(user.userName)

就可以通过命令行 node demo.js运行此文件

module.exports相当于默认导出,也可以下列方式导出

exports.userName = 'Ben'

创建httpserver

首先加载http模块,通过http创建一个服务器,服务器有一个回调函数,有请求和返回

设置返回的状态码为200,返回时在浏览器中显示hello node.js,通过http://localhost:3000/就可以访问我们的服务器了

let http = require('http')

let server = http.createServer((req, res) => {
  res.stautsCode = 200
  res.end('hello node.js')
})

server.listen(3000, '127.0.0.1', () => {
  console.log('服务器以开始运行')
})

url.parse能将当前请求的url解析出来,util.inspect能将一个url对象转换成字符串

let http = require('http')
let url = require('url')
let util = require('util')

let server = http.createServer((req, res) => {
  res.stautsCode = 200
  let strUrl = util.inspect(url.parse(req.url))
  res.end(strUrl)
})

server.listen(3000, '127.0.0.1', () => {
  console.log('服务器以开始运行')
})

req.url是一个网址的字符串

而url.parse解析后变成了类似下列一个对象,但是这个对象不会显示出来,所以我们在调试时需要util.inspect将它转成字符串来便于调试

Url {
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: null,
  query: null,
  pathname: '/',
  path: '/',
  href: '/' }

通过node加载html静态页面

 同级目录下新建index.html文件,server.js文件

通过fs读取文件

 url.parse(req.url)被解析出来是一个对象,有一个pathname属性就是index.html文件名

let http = require('http')
let url = require('url')
let fs = require('fs')

let server = http.createServer((req, res) => {
  let pathname = url.parse(req.url).pathname
  fs.readFile(pathname.substring(1), (err, data) => {
    if (err) {
      res.writeHead(404, {
        'Content-Type': 'text/html'
      })
    } 
    else {
      res.writeHead(200, {
        'Content-Type': 'text/html'
      })
      res.write(data.toString())
    }
    res.end()
  })
})
server.listen(3000, '127.0.0.1', () => {
  console.log('服务器已开始运行')

node作为客户端访问第三方接口

新建client.js文件

let http = require('http')
let util = require('util')

http.get('http://www.imooc.com/u/card', (res) => {
  let data = ''
  res.on('data', (chunk) => {
    data += chunk
  })
  res.on('end', () => {
    let result = JSON.parse(data)
    console.log('result:' + util.inspect(result))
  })
})

搭建基于Express框架运行环境

npm i -g express-generator

express --version 查看版本
exoress server  // 创建项目

在server下安装依赖,并启动项目

npm i

node bin/www

不用jade改用html,删除views下的所有jade文件

安装ejs

npm i ejs --save

在app.js中加入

var ejs = require('ejs')   // 需加入

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.engine('.html', ejs.__express)    // 需加入
app.set('view engine', 'html');     // 需改!!!

然后执行 node bin/www 就能访问http://localhost:3000/了

你可能感兴趣的:(node.js和express框架学习)