这是一个突如其来的想法,毕竟做web服务的框架那么多,为什么要选择nodejs,因为玩前端时,偶尔想调用接口获取数据,而不想关注业务逻辑,只是想获取数据,使用java或者.net每次修改更新后还要打包,干嘛有点麻烦,于是想到了nodejs

  

  安装nodejs

  如果是windows环境,可以参考:https://www.cnblogs.com/shanfeng1000/p/nodejs.html

  如果是linux环境,以Ubuntu为例,先前往官网下载nodejs:http://nodejs.cn/download/

  

  可以在windows下下载,然后发送到linux上去,之后就开始我们的命令行了  

    # 我下载得到的是v14.6.0版本,文件名称为node-v14.6.0-linux-x64.tar.xz
# 进入压缩文件目录,解压文件,在当前目录下得到node-v14.6.0-linux-x64目录
sudo tar -xvf node-v14.6.0-linux-x64.tar.xz
# 可以将node-v14.6.0-linux-x64重命名,然后放到自己设置的目录,比如我这里放到/opt目录下
sudo mv node-v14.6.0-linux-x64 /opt/nodejs
# 创建软连接,下面的/opt/nodejs要换成自己的
sudo ln -s /opt/nodejs/bin/node /usr/local/bin/node
# 检查是否成功,如果输出版本号,则表示成功了
node -v
# 使用apt安装npm,npm是nodejs的包管理工具,后面也会用到
sudo apt install npm
# 验证是否安装成功,如果输出版本号,则表示成功
npm -v

  

  简单的Web服务包

  先下载:https://pan.baidu.com/s/11u_JbZIXKAy7IOcahgCVfw 提取码: 3nra

  下载好之后,解压出来,里面其实只有6个简单的文件:

  

  controller.js:主要作为控制器,里面就两个对象:get和post,分别对应get和post请求,对象的属性名为路由,属性值是函数,作为处理程序,这里直接输出接收到的参数

  install.bat和install.sh:分别是windows平台和linux平台程序的依赖包安装脚本

  run.bat和run.sh:分别是windows平台和linux平台下的启动程序

  server.js:脚本执行文件,可以在文件最后面修改端口号,也可以修改添加自己的一些逻辑

  本程序主要依赖了5个组件:  

    nodemon:热启动,当保存修改项目中的文件后,程序会自动重新加载并重启,无需自己手动操作。
koa:nodejs的一个很好用的web框架,感兴趣的可以百度一下
koa-router:koa搭建web应用时所需要的的路由中间件
koa-static:koa搭建web应用的静态文件目录中间件,可以设置某个目录是静态目录,可以直接使用http访问静态目录中的资源
koa=body:koa的web应用处理post请求是需要用到的中间件

  在windows平台下,只需双击run.sh运行,程序就可以启动了,如果是第一次启动,会自动安装所需要的的依赖包,安装完成之后程序会自动启动

  

  然后在浏览器访问http://localhost:3000/get?a=1就可以访问看看效果了

  另外,第一次启动后,会生成一些文件:

  

  package.json和package-lock.json是包的配置信息,node_modules是包依赖模块的存放目录。

  statics是启动时创建的静态目录,可以将静态文件放在这个目录里面,比如有一个名为123.jpg的图片,那么可以使用 http://localhost:3000/123.jpg 就可以访问到了。

  在linux平台,一次运行需要使用管理员权限运行,因为第一次运行会安装一些必要的组件:  

    # 运行脚本
sudo sh run.sh

  运行之后,如下图:

  

   如果需要增加接口,只需要修改controller.js文件即可

  如果需要使用静态文件,只需要把文件放到statics目录下即可

nodejs创建一个简单的web服务的更多相关文章

  1. node创建一个简单的web服务

    本文将如何用node创建一个简单的web服务,过程也很简单呢~ 开始之前要先安装node.js 1.创建一个最简单的服务 // server.js const http = require('http ...

  2. linux系统下开启一个简单的web服务

    linux 下开启一个简单的web服务: 首先需要linux下安装nodejs 然后创建一个test.js:   vi test.js var http =require("http&quo ...

  3. 利用 nodeJS 搭建一个简单的Web服务器(转)

    下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ...

  4. IntelliJ IDEA 15 部署Tomcat及创建一个简单的Web工程

    一.部署Tomcat 二.创建一个简单的Web工程 2.1创建一个新工程 创建一个新工程 设置JDK及选择Web Application (创建的是Web工程) 点击Next,选择工作空间,起个工程名 ...

  5. django创建一个简单的web站点

    一.新建project 使用Pycharm,File->New Project…,选择Django,给project命名 (project不能用test命名)   新建的project目录如下: ...

  6. Docker容器技术-创建一个简单的Web应用

    一.创建一个简单的Web应用 1.identicon 基于某个值而自动产生的图像,这个值是IP地址或用户名的散列值. 用途: 通过计算用户名或IP地址的散列值,在网站上提供用于识别用户的图像,以及自动 ...

  7. Symfony2之创建一个简单的web应用

    Symfony2——创建bundle       bundle就像插件或者一个功能齐全的应用,我们在应用层上开发的应用的所有代码,包括:PHP文件.配置文件.图片.css文件.js文件等都会包含在bu ...

  8. 使用 CodeIgniter 创建一个简单的 Web 站点

    原文:使用 CodeIgniter 创建一个简单的 Web 站点 参考源自: http://www.ibm.com/developerworks/cn/web/wa-codeigniter/index ...

  9. SharePoint 创建一个简单的Web Part 部分

    SharePoint 创建一个简单的Web Part 部分 标准Web零件有时会很强大,运行多个功能的能力. 本文介绍了如何使用Visual Studio 创建一个简单的Web部分. 1. 打开VS, ...

随机推荐

  1. B树和B+树原理图文解析

    B树与B+树不同的地方在于插入是从底向上进行(当然查找与二叉树相同,都是从上往下) 二者都通常用于数据库和操作系统的文件系统中,非关系型数据库索引如mongoDB用的B树,大部分关系型数据库索引使用的 ...

  2. 【Fastjson】Fastjson反序列化由浅入深

    Fastjson真-简-介 fastjson是由alibaba开发并维护的一个json工具,以其特有的算法,号称最快的json库 fastjson的使用 首先先创一个简单的测试类User public ...

  3. java多线程3:synchronized

    线程安全 多个线程共同访问一个对象的实例变量,那么就可能出现线程不安全的问题. 先看一段代码示例,定义一个对象 MyDomain1 public class MyDomain1 { private i ...

  4. macOS Monterey 12.1 (21C52) 正式版 ISO、IPSW、PKG 下载

    本站下载的 macOS Monterey 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装. 2021 年 12 月 14 日, ...

  5. pipeline脚本管理

    目录 一.代码仓库 二.远程拉取 一.代码仓库 1.使用gitlab做pipeline脚本的存储,新建一个仓库 2.新建文件,把代码放进去 脚本名可以按照规律填写,环境_应用名_类型,例如:test_ ...

  6. smbclient 使用方法

        1,列出某个IP地址所提供的共享文件夹 smbclient -L 198.168.0.1 -U username%password   2,像FTP客户端一样使用smbclient smbcl ...

  7. 转: 再谈select, iocp, epoll,kqueue及各种I/O复用机制

    首先,介绍几种常见的I/O模型及其区别,如下: blocking I/O nonblocking I/O I/O multiplexing (select and poll) signal drive ...

  8. [BUUCTF]REVERSE——[HDCTF2019]Maze

    [HDCTF2019]Maze 附件 步骤: 例行检查,32位程序,upx壳 upx脱壳儿后扔进32位ida,首先检索程序里的字符串 有类似迷宫的字符串,下面也有有关flag的提示字符串,但是没法进行 ...

  9. 自动化测试环境搭建之Python3.6+selenium44+firefox

    推荐使用: Python3.6+selenium2.53.6+Firefox46以下 +[Chrome任意版本+对应版本webdriver] ----------------------------- ...

  10. CF897B Chtholly's request 题解

    Content 我们将长度为偶数的回文数称作 zcy 数,比如 \(11,1221\) 是 zcy 数,而 \(34,121\) 不是.假设第 \(i\) 个 zcy 数为 \(a_i\),求 \(\ ...