搭建api文档服务器,NodeJS基础API搭建服务器详细过程记录-20210405090152.pdf-原创力文档...

NodeJS基基础础API搭搭建建服服务务器器详详细细过过程程记记录录

前前言言

在习惯了使用express框架,j ade模板引擎等现成 具来写代码之后,很多人对于基本的NodeJS A PI会慢慢生疏。本文将以一个

超小型web项目,来详细介绍如何使用NodeJS基础的http, fs, path, url等模块提供的A PI来搭建一个简单的web服务器。当做对N

odeJS的一次复习,也为初学NodeJS的开发者提供一个参考。本文所搭建的项目将不会使用express等后端框架,仅使用最基础

的NodeJS A PI,按照MVC设计模式的思路进行编码和讲解,交流意见。源代码地址如下,建议下载源码边看博客边对照源码才

能比较快理解整个过程。https://github com/hongchh/node-example

项项目目介介绍绍

有一个简单的食品店网站,它包括一个主页index和一个详情页detail。主页展示食品店的所有食品,包括食品图片、名称、价格

3个信息,如下图所示。

用户点击任何一项食品就会跳转到对应的详情页,包括食品图片、名称、价格和描述4个信息,如下图所示。

项项目目结结构构

项目的文件结构如下所示。

node-example

|--data(存放项目数据的文件夹)

|--detail.json(存放食品详情数据)

|--foods.json(存放首页食品数据)

|--model(提供访问和操作数据服务的数据模型)

|--detail.js(详情数据访问模块)

|--foods.js(食品数据访问模块)

|--public(存放css,js,图片等静态文件)

|--css(存放css文件的文件夹)

|--img(存放图片的文件夹)

|--js(存放js文件的文件夹)

|--route(路由,控制器)

|--api(处理普通请求的路由,或者叫控制器)

|--static(处理静态文件请求的路由,或者叫控制器)

|--views(视图,即用户界面)

|--index.html(主页界面)

|--detail.html(详情页面)

|--server.js(服务器启动文件)

|--package.json(项目包信息)

|--R ADM .md(项目信息以及启动方法描述)

本文只讲解服务端编程,因此两个简单界面的实现过程这里就不再�� 嗦了。假设你已经能够自行完成前端的界面编程,下面开

始讲解服务端编程。

编编写写服服务务器器

server j s中要完成服务器的创建和启动,并将请求转发给相应的路由去处理。详细代码如下所示 (假设我们已经有了能够正常

作的路由,这里采用Top-Down的思路,我们一层一层地往下写,专注于解决每个层次的问题)。代码中使用正则表达式来判定

客户端request是否是在请求静态文件,如果是,则交给专门处理静态文件请求的路由static去处理,否则交给普通请求的路由器a

pi去处理。普通请求根据它的HTT P方法来判断使用get或者post 。最后,设置服务器监听3000端口,server j s的代码就算完成了

var http = require('http');

var url = require('url');

var api = require('./route/api');

var static = require('./route/static');

// 匹配静态文件夹路径的正则表达式,用于判定请求是否为静态文件请求

var static xp = /\/public\/(img |css|js)\/[a-z]*\.(jpg |png |gif |css|js)/;

http.createServer((req, res) => {

var pathname = url.parse(req.url).pathname;

if (static xp.test(pathname)) {// 静态文件请求交由static处理

st

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值