使用Node.js搭建服务器

2024-06-01 1106阅读

使用Node.js搭建服务器

1.安装Node.js和npm

使用Node.js搭建服务器
(图片来源网络,侵删)
  • 安装教程自行搜索(好多),建议Node.js直接安装在C盘

  • 注意镜像的设置:npm install -g cnpm --registry=https://registry.npm.taobao.org

  • 注意版本检查:

    //以下是我使用的版本号
    node -v  v14.21.2
    npm -v  6.14.17
    

    2.创建一个空的文件夹,打开该路径下的终端(快捷键cmd+Enter)

    • 输入 npm init 初始化项目 ,设置一下 package name(正常起个名),后续一路回车即可,直到文件夹中出现 package.json 文件。
    • 注意:如果觉得麻烦直接 npm init -y 创建,生成一个默认的 package.json 文件

      3.安装Express框架输入: npm i express

      4.创建 server.js 文件,在文件中写上以下代码:

      //导入express
      const express = require('express');
      //创建web服务器
      const app = express();
      // 通过app.listen进行服务器的配置,并启动服务器
      //接收两个配置参数,一个是对应的端口号,一个是启动成功的回调函数
      app.listen(5000,()=>{
          console.log('5000端口服务器启动成功');
      })
      
      //结合React的github案例的server.js文件
      const express = require("express")
      const axios = require("axios")
      const app = express()
      app.get("/search/users", function (req, res) {
        const {q} = req.query
        axios({
          url: 'https://api.github.com/search/users',
          params: {q}
        }).then(response => {
          res.json(response.data)
        }).catch(error => {
          // 捕获请求失败的情况,并返回适当的错误信息给客户端
          if (error.response) {
            // 请求已经发出,但是服务器返回了非2xx的状态码
            res.status(error.response.status).json({ error: error.response.statusText });
          } else if (error.request) {
            // 请求发出了,但是没有收到响应
            res.status(500).json({ error: "No response from server" });
          } else {
            // 其他错误
            res.status(500).json({ error: error.message });
          }
        });
      })
       
      app.get("/search/users2", function (req, res) {
        res.json({
          items: [
            {
              login: "yyx990803",
              html_url: "https://github.com/yyx990803",
              avatar_url:
                "https://avatars3.githubusercontent.com/u/499550?s=460&u=de41ec9325e8a92e281b96a1514a0fd1cd81ad4a&v=4",
              id: 1,
            },
            {
              login: "red456",
              html_url: "https://github.com/ruanyf",
              avatar_url: "https://avatars2.githubusercontent.com/u/905434?s=460&v=4",
              id: 2,
            },
            {
              login: "yyx9908032",
              html_url: "https://github.com/yyx990803",
              avatar_url:
                "https://avatars3.githubusercontent.com/u/499550?s=460&u=de41ec9325e8a92e281b96a1514a0fd1cd81ad4a&v=4",
              id: 3,
            },
            {
              login: "Banner",
              html_url: "https://github.com/ruanyf",
              avatar_url: "https://avatars2.githubusercontent.com/u/905434?s=460&v=4",
              id: 4,
            },
            {
              login: "yyx9908033",
              html_url: "https://github.com/yyx990803",
              avatar_url:
                "https://avatars3.githubusercontent.com/u/499550?s=460&u=de41ec9325e8a92e281b96a1514a0fd1cd81ad4a&v=4",
              id: 5,
            },
            {
              login: "abc3344",
              html_url: "https://github.com/ruanyf",
              avatar_url: "https://avatars2.githubusercontent.com/u/905434?s=460&v=4",
              id: 6,
            },
            {
              login: "yyx9908034",
              html_url: "https://github.com/yyx990803",
              avatar_url:
                "https://avatars3.githubusercontent.com/u/499550?s=460&u=de41ec9325e8a92e281b96a1514a0fd1cd81ad4a&v=4",
              id: 7,
            },
            {
              login: "apple822",
              html_url: "https://github.com/ruanyf",
              avatar_url: "https://avatars2.githubusercontent.com/u/905434?s=460&v=4",
              id: 8,
            },
            {
              login: "yyx9908035",
              html_url: "https://github.com/yyx990803",
              avatar_url:
                "https://avatars3.githubusercontent.com/u/499550?s=460&u=de41ec9325e8a92e281b96a1514a0fd1cd81ad4a&v=4",
              id: 9,
            },
          ],
        });
      });
      app.listen(5000, "localhost", (err) => {
        if (!err){
        	console.log("服务器启动成功")
        	console.log("请求github真实数据请访问:http://localhost:5000/search/users")
        	console.log("请求本地模拟数据请访问:http://localhost:5000/search/users2")
        } 
        else console.log(err);
      

      5.运行服务器输入:node server.js

      • 如果你觉得麻烦,可以更改 package.json 文件的配置

        "scripts": {
            "start": "node server.js"
        },
        
      • 更改完毕运行服务器输入:npm start

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]