nodejs创建一个简单的web服务
这是一个突如其来的想法,毕竟做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服务的更多相关文章
- node创建一个简单的web服务
本文将如何用node创建一个简单的web服务,过程也很简单呢~ 开始之前要先安装node.js 1.创建一个最简单的服务 // server.js const http = require('http ...
- linux系统下开启一个简单的web服务
linux 下开启一个简单的web服务: 首先需要linux下安装nodejs 然后创建一个test.js: vi test.js var http =require("http&quo ...
- 利用 nodeJS 搭建一个简单的Web服务器(转)
下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ...
- IntelliJ IDEA 15 部署Tomcat及创建一个简单的Web工程
一.部署Tomcat 二.创建一个简单的Web工程 2.1创建一个新工程 创建一个新工程 设置JDK及选择Web Application (创建的是Web工程) 点击Next,选择工作空间,起个工程名 ...
- django创建一个简单的web站点
一.新建project 使用Pycharm,File->New Project…,选择Django,给project命名 (project不能用test命名) 新建的project目录如下: ...
- Docker容器技术-创建一个简单的Web应用
一.创建一个简单的Web应用 1.identicon 基于某个值而自动产生的图像,这个值是IP地址或用户名的散列值. 用途: 通过计算用户名或IP地址的散列值,在网站上提供用于识别用户的图像,以及自动 ...
- Symfony2之创建一个简单的web应用
Symfony2——创建bundle bundle就像插件或者一个功能齐全的应用,我们在应用层上开发的应用的所有代码,包括:PHP文件.配置文件.图片.css文件.js文件等都会包含在bu ...
- 使用 CodeIgniter 创建一个简单的 Web 站点
原文:使用 CodeIgniter 创建一个简单的 Web 站点 参考源自: http://www.ibm.com/developerworks/cn/web/wa-codeigniter/index ...
- SharePoint 创建一个简单的Web Part 部分
SharePoint 创建一个简单的Web Part 部分 标准Web零件有时会很强大,运行多个功能的能力. 本文介绍了如何使用Visual Studio 创建一个简单的Web部分. 1. 打开VS, ...
随机推荐
- 【编程思想】【设计模式】【结构模式Structural】装饰模式decorator
Python版 https://github.com/faif/python-patterns/blob/master/structural/decorator.py #!/usr/bin/env p ...
- pop和push等使用方法,every和some、join
push 在最前面添加一个元素 pop 移除最后一个元素 shift 移除第一个元素 unshift 放入一个元素,且排在最前 arr.splice(2,2)//移除从指定下标 slice(2 ...
- 【简】题解 AWSL090429 【价值】
先考虑当要选的物品一定时 显然有个贪心 wi越小的要越先选 所以先按wi从小到大拍序 因为发现正着递推要记录的状态很多 并且wi的贡献与后面选了几个物品有关 考虑正难则反 倒着递推 提前计算wi的贡献 ...
- 持续部署CI/CD
一.简介 在敏捷开发时,通常将服务进行拆分成不同模块,每个开发小组负责一个模块的开发,会在一天内对这个模块进行频繁的提交到仓库主干并部署到线上.CI/CD就是在开发中使用工具保证快速并稳定上线的方法, ...
- iOS-启动项目(二)引入第三方库
摘要 项目中很大几率会用到第三方库,通过 Pod 方式引入第三方库是效率很高的方式,这里介绍一个新的项目搭建 Pod 方式的环境,方便项目中引入第三方库文件. 刚创建的项目中如果需要用到第三方库,常用 ...
- [BUUCTF]PWN——ciscn_2019_n_3
ciscn_2019_n_3 附件 步骤 例行检查,32位,开启了nx和canary保护 本地试运行一下,经典的堆题的菜单 3.32位ida载入 new(),申请了两个chunk,第一个chunk(1 ...
- [BUUCTF]REVERSE——[BJDCTF2020]BJD hamburger competition
[BJDCTF2020]BJD hamburger competition 附件 步骤: 例行检查,64位程序,无壳儿 由于unity是用C++开发的,这里就不用IDA了,直接用dnspy看源码 在B ...
- Nginx 编译数格式化输出
printf "%s\n" `nginx -V 2>&1` nginx -V 2>&1 | sed 's/ /\n/g'
- 小白误入(<<<绝没有针对>>>)企业级架构介绍与IP tables防火墙介绍
内容详细 架构图 架构图详解 架构: 把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并 ...
- table中tr、td标签设置只读,不能修改(readonly属性)
在不能修改的位置加上代码:onselectstart="return false" οnselect="document.selection.empty()" ...