这是一个突如其来的想法,毕竟做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. vue SCSS

        C:\eclipse\wks\vue\esql-ui>node -v v12.18.1 C:\eclipse\wks\vue\esql-ui>npm -v 6.14.5 直接修改p ...

  2. JFinal之ActiveRecord开发示例

    JFinal独创Db + Record模式示例 JFinal配备的ActiveRecord插件,除了实现了类似Rails ActiveRecrod的功能之外,还实现了Db + Record模式,此模式 ...

  3. 【编程思想】【设计模式】【行为模式Behavioral】Specification

    Python版 https://github.com/faif/python-patterns/blob/master/behavioral/specification.py #!/usr/bin/e ...

  4. 将图片打印到word中

    1.生成模板文件 工具类: package com.sfec.snmgr.track.utils;import com.alibam.core.wechat.util.QRCodeUtil;impor ...

  5. python自带性能强悍的标准库 itertools

    可迭代对象就像密闭容器里的水,有货倒不出 itertools是python内置的标准模块,提供了很多简洁又高效的专用功能,使用得当能够极大的简化代码行数,同时所有方法都是实现了生成器函数,这就意味着极 ...

  6. JUC概述

    JUC概述1: 首先是进程和线程的概念: 进程:是指系统在系统中正在运行的一个应用程序,程序一旦运行就是进程,进程是资源分配的最小单位 线程:进程之内独立执行,是程序执行的最小单位 线程的六大状态:在 ...

  7. 根据注释生成xml和从nuget包中复制xml显示到swagger

    生成xml到输出目录 从注释生成xml 在要生成xml的项目的csproj中添加如下代码, 生成的xml名称为项目名称.xml. 比如该项目叫做Abp.Application, 则xml名为 Abp. ...

  8. 关于UML类图方面的问题(连载)

    UML类图符号:类中属性的可见性主要包括公有(public).私有(Private)和受保护(Protected).在UML中,公有类型的用"+"表达,私有类型用"-&q ...

  9. 【web】php文件包含(利用phpinfo)

    Docker搭建复现环境 地址:https://github.com/vulhub/vulhub/tree/master/php/inclusion ps. github单独下载一个文件夹的方法: 安 ...

  10. cron 获取下次运行时间(基于 C# + Quartz.NET)

    代码 Quartz 的 cron 支持秒,导致一些 cron 库无法准确的获得下次执行时间,这里使用 Quartz.Net 自带的方法来获取下次执行时间. //引用 Quartz CronExpres ...