当前位置: 首页 > Linux

Nodejs服务器部署教程2,在线部署vue项目

时间:2023-04-06 23:49:46 Linux

nodejs服务端部署教程1,https://segmentfault.com/a/11...本文主要介绍如何在服务端运行vuejs项目。如果你在上一篇教程中成功输出了helloworld,那么这篇文章就更简单了。首先你得有一个已经可以在本地运行的基于vuejs的项目。我将以我之前写的饿了么项目为例进行部署。如果你没有写过项目,你可以使用我的。本项目用于学习,https://github.com/wmui/vue-elm本次部署使用最古老最省心的方式,ftp上传项目。项目用npmrunbuild打包后,会有一个dist目录。这个文件夹就是我们要部署的项目,写个小脚本。如果会点nodejs,脚本就很容易看懂了。下面是app.js启动脚本的内容constfs=require('fs');constpath=require('path');constexpress=require('express');constapp=express();//模拟数据,api服务varappData=require('./data.json');varseller=appData.seller;vargoods=appData.goods;varratings=appData.ratings;//api接口varapiRoutes=express.Router();apiRoutes.get('/seller',function(req,res){res.json({erron:0,data:seller})});apiRoutes.get('/goods',function(req,res){res.json({erron:0,data:goods})});apiRoutes.get('/ratings',function(req,res){res.json({erron:0,data:ratings})});app.use('/api',apiRoutes);app.use(express.static(path.resolve(__dirname,'./dist')))app.get('*',function(req,res){consthtml=fs.readFileSync(path.resolve(__dirname,'./dist)/index.html'),'utf-8')res.send(html)})app.listen(8082);简单解释一下上面的代码,因为项目需要一些数据,我的模拟数据在data.json这个文件中,三个路由都简单的写了,对应得到的模拟数据。然后静态解压dist目录,读取dist目录下的index.html(因为是单页应用,所以只有这一个html文件),监听8082端口。我们先在本地准备好所有需要上传的文件:我们的脚本使用了express框架,所以我们可以生成一个package.json,并在里面添加依赖{"name":"vue-elm-dist","version":"1.0.0","description":"","main":"app.js","scripts":{"test":"echo\"Error:notestspecified\"&&exit1"},"author":"","license":"ISC","dependencies":{"express":"^4.15.3"}}完成以上操作后,我们要上传的文件工程是这样的。新建文件夹如elm,将整个项目通过ftp上传到根目录下的www文件夹启动服务登录你的服务器,cd到elm文件夹,执行npminstall安装依赖,然后pm2启动app.js会成功启动服务现在可以通过ip加端口的形式正常访问,但是如果想通过域名访问,需要配置nginx映射nginx端口映射配置首先需要解析一个二级域名到你的主机ip,比如我用的elm.86886.wang二级域名配置文件和之前upstreamelm基本一样{server127.0.0.1:8082;}server{listen80;服务ver_nameelm.86886.wang;位置/{proxy_set_header主机$http_host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Nginx-proxytrue;proxy_passhttp://elm;proxy_redirect关闭;}}我把它命名为elm-8082.conf然后通过ftp上传到/etc/nginx/conf.d/目录下执行sudonginx-sreload重启nginx服务器。十分钟后,应该可以正常访问了。点击访问