node从零开始搭建一个服务器

很久以前就学习过nodejs这玩意,所以有些朋友问我怎么使用nodejs搭建一个服务,所以今天又重新拾起记忆,准备写一个简单的服务器并记录下来。这里使用了express框架来搭建,首先就需要安装好express。
安装:npm install express
安装完成之后,需要创建一个js文件,我这里命名为app.js方便记忆。
在这里插入图片描述
express中文官网的地址:https://www.expressjs.com.cn/starter/basic-routing.html

一、初步搭建

const express = require('express');
const app = express();
app.get('/home',(request,response)=>{
    response.send('hello world!')
})
app.listen(8087, ()=>{
    console.log('服务器开启!')
})

使用node命令运行该文件:node ./app.js;只要不出意外,就可以正常的运行起来
在这里插入图片描述

注意了,这里的端口号必须不能是使用目前已经在使用的,否则就会报端口号占用的错误。
在这里插入图片描述

二、静态服务器托管文件

通过app.use(express.static('public'))就可以将当前目录下public文件中的静态资源对外开放访问了。直接就可以通过http://localhost:8087/1.png访问到对应的静态文件。
在这里插入图片描述

三、get请求

const express = require('express');
const app = express()

app.get('/random/image',(request,response)=>{
    // 设置请求头
    response.setHeader('Content-Type','text/json')
    // 可以使用request.query来获取到约定好的参数对象
    response.send(request.query)
})

app.listen(8087,()=>{
    console.log('服务器开启!')
})

get接受到请求回来的数据后,又给返回了
在这里插入图片描述

四、post请求

const express = require('express')
const app = express()

app.post('/test_post',(request,response)=>{
  response.send('恭喜访问成功')
})

app.listen(4399,()=>{
  console.log('服务器开启');
})

post请求不方便测试,下载了一个postman来测试这个post请求。注意:每一次修改文件里的数据,都需要重新启动服务器才能有效。
在这里插入图片描述
获取post请求过来的参数
获取到post请求的参数需要配合一个插件来获取会更加的方便一点:npm i body-parser,更加具体的使用方式可以参照npm官网

const express = require('express')
// 引入文件
const bodyParser = require('body-parser')
const app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

app.post('/test_post',(request,response)=>{
  console.log(JSON.stringify(request.body));
  response.send({
    code:200,
    data:'返回成功'
  })
})

app.listen(4399,()=>{
  console.log('服务器开启');
})

在这里插入图片描述

五、连接MySQL数据库

连接数据库这里使用了mysql第三方插件,执行npm i mysql安装好mysql后,详细看官网

const express = require('express')
const mysql = require('mysql')
const app = express()

// 创建数据库连接
let connection = mysql.createConnection({
  host:'localhost',
  user:'root',
  password:'root',
  database:'my_base'
})

// 打开链接
connection.connect();

app.get('/text_get',(request,response)=>{
  connection.query('select * from user',(error,result,fields)=>{
    // 当error为null时,就表示没有错误信息
    // result返回表中的数据
    // fields返回表中的字段
    if(!error){
      response.send({
        code:'200',
        data:result
      })
    }
  })
  // 关闭链接
  connection.end()
})

app.listen(4399,()=>{
  console.log('服务器开启');
})

数据库这个时候必须要启动着,然后使用postman请求一下接口,能返回数据库中查出来的数据,就表明这个接口完成了。
在这里插入图片描述

六、post请求登录案例

const express = require('express')
// 引入文件
const bodyParser = require('body-parser')
const mysql = require('mysql')
const app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// 创建数据库连接
let connection = mysql.createConnection({
  host:'localhost',
  user:'root',
  password:'root',
  database:'my_base'
})

// 打开链接
connection.connect();

app.post('/test_post',(request,response)=>{
  // let param = JSON.stringify(request.body)
  let { username, password } = request.body
  
  connection.query('select * from user',(error,result,fields)=>{
    if(!error){
      for(let i = 0; i < result.length; i++){
        if(result[i].username == username && result[i].password == password){
          return response.send({
            code:200,
            data:'登录成功'
          })
        }else{
          return response.send({
            code:500,
            data:'服务器错误'
          })
        }
      }
      // 关闭链接
      connection.end()
    }
  })
})

app.listen(4399,()=>{
  console.log('服务器开启');
})

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值