我的编程空间,编程开发者的网络收藏夹
学习永远不晚

node通过express搭建自己的服务器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

node通过express搭建自己的服务器

前言

为了模拟项目上线,我们就需要一个服务器去提供API给我们调用数据。这次我采用express框架去写API接口。所有请求都是通过ajax请求去请求服务器来返回数据。第一次用node写后端,基本就是摸着石头的过河,文中有什么不足不处欢迎指出。

安装express框架

传送门: express官方

然后介绍一下需要引入的中间件,node本身提供了一些库。我们可以直接通过require去引用,对于未提供的库,我们也可以通过手动npm去安装


var fs = require('fs'); 操作文件模块
var http = require('http'); http模块
var url = require('url');  获取url信息模块
var qs = require('querystring'); 处理url参数模块
var path = require('path'); 文件路径模块
var bodyParser = require('body-parser'); 请求体对象化 (必须)否则后台无法解析前端发送的body内容

接下来直接启用模块


app.use(bodyParser.json());

// 访问静态资源文件 这里是访问所有dist目录下的静态资源文件
app.use(express.static(path.resolve(__dirname, '../dist')))
app.use(express.static('public'));

// 因为是单页应用 所有请求都走/dist/index.html
app.get('/', function(req, res) {
 const html = fs.readFile(path.resolve(__dirname, '../dist/index.html'), 'utf-8');
 res.send(html)
});

//处理请求跨域

app.all('*', function(req, res, next) {
 res.header("Access-Control-Allow-Origin", "*");
 res.header("Access-Control-Allow-Headers", "X-Requested-With");
 res.header("Content-Type", "application/json;charset=utf-8");
 res.header("Access-Control-Allow-Headers", "content-type");
 next();
});

准备工作做完可以开始动手写接口了。关于数据库可以模拟一个json,也可以真实模拟上线数据库。

下面会划成3块说明——数据库的对接、请求的操作、文件请求的操作。

数据库连接

这里我假设你已经安装了mongodb数据库并成功启用。仔细阅读express教程你会发现框架提供了对mongodb的支持,mongodb有非常多的扩展插件去使用该数据库 比如mongoose。这里我们使用express官方提供的mongoskin来链接数据库。


$ npm install mongoskin

#####官方实例

var db = require('mongoskin').db('localhost:27017/animals');

db.collection('mamals').find().toArray(function(err, result) {
 if (err) throw err;
 console.log(result);
});

安装成功后 ,我们就首先把使用的数据库引入,代码如下


var db = require('mongoskin').db('mongodb://localhost:27017/blog');
var ObjectId = require('mongodb').ObjectID;

以上代码表示我们成功连接了blog数据库并且启用了私有ID,objectID是mongodb生成数据自动添加的ID。可以直接拿来用。到这里数据库和服务器就已经对接完毕了。

对前端发送的请求进行处理

处理get请求



app.get('/article/info', function (req, res) {
 >>> 获取请求参数
 var arg = qs.parse(url.parse(req.url).query);
 var id = arg.id;
 >>> 链接数据库根据参数查找文档并返回
 db.collection('articleList').find({ "_id": ObjectId(id)}).toArray(function(err, result) {
  if (err) throw err;
  console.log(result)
  res.end(JSON.stringify(result))
 });
});

以上代码就实现了对一个get请求的处理,通过参数模块获取了url的参数,db也就是已经连接的数据库。根据ID对‘articleList'的数据表进行搜索,处理完毕后 通过res.end()返回数据结束响应。

处理post请求



app.post('/board/post', function (req, res) {
 >>>> 获取请求参数
 var data = {
  date: req.body.date,
  name: req.body.name,
  content: req.body.content,
  time: req.body.time,
  position: req.body.position
 };
 
 >>> 链接数据库并插入数据
 
 db.collection('board').insert(data, function(err, result) {
  if(err) {
   res.end('Error:'+ err)
  }
  res.end('提交成功')
 });
});

post请求的参数获取和get不同 可以直接通过req.body去获取前端传输的请求体。通过js对象的方式去获取参数。然后根据参数执行数据库操作。到此,基本的请求也就介绍完毕了。下面说下怎么处理图片的上传此类常见的文件操作需求。

对前端的文件请求进行处理

为了简化操作,我们可以引入multer模块来处理文件,代码如下


var multer = require('multer');
var storage = multer.diskStorage({
 //设置上传后文件路径,uploads文件夹会自动创建。
 destination: function (req, file, cb) {
  cb(null, './public/uploads')
 },
 //给上传文件重命名,获取添加后缀名
 filename: function (req, file, cb) {
  var fileFormat = (file.originalname).split(".");
  cb(null, file.fieldname + '-' + Date.now() + "." + fileFormat[fileFormat.length - 1]);
 }
});
//生成上传模块,让API调用
var upload = multer({
 storage: storage
}).single('file');

以上代码就成功引入了文件上传模块,通过该模块我们可以快速生成相应内容,具体使用方法可以查看官方文档。准备工作完成后,在项目中使用:



app.post('/upload', function (req, res) {
 upload(req, res, function (err) {
  if (err) {
   console.log(err)
   return
  }
  console.log(req.file)
  res.end(JSON.stringify(req.file))
 })
});

//图片上传到服务器 ,向客户端返回文件信息
  比如文件的存储位置,之后就可以通过地址访问服务器的图片


app.post('/image/delete', function (req, res) {
 fs.unlink(req.body.path, function(err) {
  if (err) {
   return console.error(err);
  }
  res.end("文件删除成功!");
 });
});

这里上传图片我们就直接使用了直接之前已经写好的upload模块,当该接口请求成功时 ,文件就已经上传成功了,如果你需要一个预览过程,那不应该直接调用上传接口 。通过原生node fs模块 我们也能对添加的文件进行删除,修改操作。

上线以及上线后遇到的history模式的刷新问题

上线过程我们可以当作就是换一台电脑跑程序,这里我用的是阿里云的服务器。在云服务器安装好环境好,把项目克隆进去 ,再装个forever之类的永久运行库,start ~ok 这样你的项目就永远在运行了。如果需要www访问 ,还需要买个dns解析 和域名,指向你的服务器。

以上我们如果在本地跑项目基本已经可以没问题。但项目上线后一刷新。啊啦??404什么鬼?打开百度一查。那炉火多~~当前端启用hisory模式,后台也必须开启对history的支持。express 环境如下:


var history = require('connect-history-api-fallback');
var connect = require('connect');
///////
app.use(history());

更新代码刷新~OK 完美!

总结

想学好一样东西,需要长久的积累。作为一个前端,一些服务器数据库的知识除了可以帮助我们更好的跟兄弟(后端)交流,对前端来说也是如鱼得水一般的存在。

下一篇文章准备写electron入门,electron是通过js构建桌面应用的框架,。共勉~~~~~

Github:https://github.com/xu455255849/myBlog

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

node通过express搭建自己的服务器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

node通过express搭建自己的服务器

前言 为了模拟项目上线,我们就需要一个服务器去提供API给我们调用数据。这次我采用express框架去写API接口。所有请求都是通过ajax请求去请求服务器来返回数据。第一次用node写后端,基本就是摸着石头的过河,文中有什么不足不处欢迎指
2022-06-04

搭建自己的云服务器

搭建自己的云服务器可以使用一些第三方服务,如:MySQL数据库:MySQL提供了强大的数据存储服务,可以用于管理数据,并存储文件。Docker容器:Docker允许用户将数据和应用程序部署在不同的虚拟机中,以便可以更好地管理和协作。Kubernetes容器:Kubernetes是一种容器编排框架,可以实现自动化的容器部署和管理。Dropbox云存储:Dropbox是一种轻量级的云存储服
2023-10-26

云服务器自己搭建

云服务器是一种虚拟化平台,通常提供按需、弹性、高可用性等特点,适合在线数据中心、存储、网络、应用程序等方面运行。在自助云平台或云服务平台上搭建云服务器需要考虑以下几个关键点:选择适当的云服务商:不同的云服务商提供的云服务器有不同的特点和优劣势,需要在选择云服务器的时候仔细评估。选择合适的硬件:不同的云服务商提供的硬件资源和性能也有差异,需要根据实际情况选择合适的计算和存储设备。部署和调试
2023-10-26

自己搭建云服务器

如果您是初学者,那么创建云服务器可能有些困难。以下是一些步骤,您可以开始学习搭建云服务器:1.选择云服务器提供商在购买云服务器之前,您可以查看云服务器提供商的品牌和历史记录。您还可以通过查看云服务器提供商的客户反馈来确定您的需求是否适合。2.配置服务器在云服务器提供商的控制面板中进行配置,可以为云服务器提供所需的功能和设置。您需要选择计算、存储和网络等云服务器基础设施的选项。3.部署和
2023-10-26

Linux下怎么通过Gogs搭建自己的Github

随着Github的逐渐普及,越来越多的人会选择在其中建立自己的项目,也就是在Github上发表自己的代码。然而,Github限制了单个账户上能建立的私人库的数量,所以一些高频使用者可能需要通过其他途径来建立自己的代码库。在这个时候,自己搭建
2023-10-22

如何搭建自己的云服务器

要搭建自己的云服务器,你可以按照以下步骤进行操作:1. 选择云服务提供商:有许多云服务提供商可供选择,你可以根据自己的需求和预算选择适合的服务提供商。2. 注册账户:在选择好云服务提供商后,你需要注册一个账户。这通常需要提供一些个人信息和支
2023-09-27

如何搭建自己的git服务器

要搭建自己的Git服务器,可以按照以下步骤进行操作:1. 选择操作系统:选择适合自己的操作系统作为服务器,如Linux、Windows或macOS。2. 安装Git:在选择的操作系统上安装Git,可以去Git官方网站下载对应的安装程序,并按
2023-10-08

自己搭建服务器和云服务器

如果您需要搭建服务器,可以按照以下步骤进行操作:确定您的需求和预算,例如您需要多少台机器,您需要支付哪些服务的费用等。选择合适的云计算供应商,包括服务器品牌、型号、服务类型和价格等。您可以参考不同云计算供应商的官方网站上的价格和性能等信息。确定需要的软件或开发工具,例如虚拟化软件、操作系统、数据库等。这些可以帮助您更快地搭建基础设施。根据您的硬件和网络需求购买所需的硬件和网络基础设施。
2023-10-26

怎么搭建自己的dns服务器

要搭建自己的DNS服务器,您可以按照以下步骤进行操作:1. 选择操作系统:首先,您需要选择一个适合您的操作系统来搭建DNS服务器。常见的选择包括Linux(如Ubuntu、CentOS)和Windows Server。2. 安装DNS服务器
2023-08-25

搭建自己的云服务器教程

搭建自己的云服务器是一个需要认真思考和实践的过程。以下是一些基本的步骤和建议:选择云服务器提供商:首先,您应该考虑您的应用程序需要多少存储空间、带宽和其他资源来支撑它的运行。您可以通过查看云服务器提供商的官方网站来了解他们的技术支持和服务类型。配置基础设施:接下来,您需要选择所需的云服务器提供商的基础设施,包括服务器硬件、操作系统、数据库等。在选择基础设施之前,您需要了解他们的政策。选择
2023-10-26

怎么搭建自己的云服务器

搭建自己的云服务器需要注意以下几个方面:选择合适的云服务提供商:选择能够提供可靠稳定的云服务,并确保其可以满足您的各种需求。配置云服务器:为您的云服务器配置足够的硬件资源,包括服务器操作系统、数据库、存储空间等,以确保高性能、高可用性和高可靠性。创建虚拟机:创建虚拟机可以让您在不同的服务器上运行不同的应用程序和服务。您可以根据需求选择合适的虚拟机类型和配置,使其能够更灵活地处理各种任务。
2023-10-26

怎样搭建自己的云服务器

搭建自己的云服务器需要了解一些技术和相关的知识,以下是一些步骤和建议:选择云服务提供商:需要选择一个可靠的、知名的云计算服务提供商,这将帮助您获得最好的服务和价格。可以通过搜索引擎或者其他可靠来源来查找相关的信息。配置服务器环境:确保您拥有所需的云服务提供商提供的服务器硬件、软件和操作系统。您可以使用云服务提供商的在线控制面板或者在线服务来配置这些环境。购买所需的软件:根据需要,您需要购
2023-10-26

如何搭建自己的云服务器

如何搭建自己的云服务器创建自己的云服务器需要以下步骤:选择云服务提供商。创建云服务器实例。配置网络设置。安装操作系统和应用程序。优化性能,包括调整实例大小和启用自动扩展。实施安全措施,如强大的密码和监控。管理和维护实例,包括备份、更新和成本审查。
如何搭建自己的云服务器
2024-04-09

自己搭建云服务器系统

如果您需要搭建云服务器系统,可以考虑以下步骤:确定您需要的云服务器类型、容量和价格:您需要使用多少台服务器来构建您的云平台?这些服务器的需求是多少?您需要多大的带宽或存储空间来存储您的数据?您需要什么类型的软件和服务来支撑云平台?选择适合您需求的云计算供应商:确定您选择云服务器的供应商,包括他们的云服务器产品、品牌、服务、价格等。选择一个合适的供应商将有助于您节省成本并确保服务质量。了解
2023-10-26

如何自己云服务器搭建

以下是一个简单的步骤:选择一台云服务器:您可以选择适合您需求的云计算平台,例如AmazonWebServices(ECS)、GoogleCloudPlatform(GCP)。安装所需的软件:在GitHub上下载云服务器的软件库和依赖项。创建一个新的Github帐户:创建一个新的GitHub帐户,并为其设置帐户和密码。创建一个GitHub代码仓库:打开GitHub并登录您的代码仓库。在仓
2023-10-26

编程热搜

目录