零基础个人建站——混合模式开发之项目上线那些坑 、二

用nodejs 开启我们的服务   (这里采用KOA框架   和mongodb 数据库)关于里面的详细代码我就不说了,,没有基础的同学要去努力学习~~~~

一 、 全局安装koa-脚手架

1、新建项目目录,准备在哪里创建项目和写代码,就在哪里创建即可。

2、打开命令行窗口。安装koa-generator,安装命令为: 

 npm install -g koa-generator

3、使用koa-generator生成koa2项目,输入命令: (koa_demo为“项目名称”,即:项目文件夹)

koa2 koa_demo

备注: 我使用 ejs 模版,因此,生成koa2项目时,我一般输入命令:koa2 koa_demo -e --ejs (这样,就把默认的jade 换成了 ejs 了)

4、创建项目成功之后进入koa_demo项目,然后进行安装koa2依赖就可以了

cd koa_demo && npm install

5、安装完成之后通过命令:npm start 启动项目,打开浏览器 http://localhost:3000/ 就能看到页面了。

备注:参数相关 
在创建项目时,可以定制自己想要的东东,以下是参数:

-h --help 帮助

-V --version 版本号

-e --ejs 添加ejs模板引擎支持(默认是jade)

--hbs 添加hbs模板引擎支持(默认是hbs)

-H --hogan 添加hogan.js支持

-c --css <engine> 添加css样式 支持 less sass styus css(默认是css)

--git (g小写) 添加 .gitignore

-f --force force on non-empty directory

要是开启成功的话会显示

现在我们一就可以通过服务器来构建我们服务,,我们需要关心这一段代码


app.use(require('koa-static')(__dirname + '/public'))

如果我们需要向前台返回 静态资源  只需要将我们的项目目录放在public下,到时候访问对应html。

如果我们需要配置项目其他的api  就需要加载其他的模块 来配置对应的路由,发送不同的数据给前台

const router = require('koa-router')()

router.get('/', async (ctx, next) => {
  await ctx.render('index', {
    title: 'Hello Koa 2!'
  })
})

router.get('/string', async (ctx, next) => {
  ctx.body = 'koa2 string'
})

router.get('/json', async (ctx, next) => {
  ctx.body = {
    title: 'koa2 json'
  }
})

module.exports = router

最后别忘了把对应路由加载到主线程里边。

现在 ,,我拖了一个html的静态资源放在自己的public 目录下项目结构如图所示

,然后去访问

http://localhost:3000/050/index.html

对应页面就可以成功的访问了。

这是在本地   如果实在服务器上呢??so  easy  把同样的步骤在走一遍不就完了,

1、打开SLL 终端   打开对应的文件目录把整个项目拖到这个文件夹下,,注意,,如果你不想上传的很慢的话要把nodemoudles文件夹删除再上传  在服务器在npm 下载  。另一个我们要注意下端口占用的问题,常用的80  3000 8080端口一般都是抛给主要的服务,自己设置的端口要记得。

2.服务器环境安装node 和 npm  这种有很多方法,大家自行百度,这里说一种我认为最简单的,,通过node版本管理器来安装,

执行:

先安装node  版本管理器

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

 之后需要激活nvm:

 source ~/.nvm/nvm.sh

激活完成后,安装node

nvm install node 

 安装完成后,切换到该版本

nvm use node

  执行完检查一下


[root@izdc17s57ufq8oz ~]# node -v
v10.9.0
[root@izdc17s57ufq8oz ~]# npm -v
6.2.0

说明安装成功。

现在  项目上传完成之后 我们执行

cd /usr/local/nodeproject

然后

npm install

  安装所有依赖就可以在服务器上启动我们的项目。

理论上  我们的项目现在可以通过我们的公网ip + 端口访问  然而!!!!

问题就出在这里    电脑防火墙可不是吃素的  随随便便就进来了,,那还了得,,下载我们需要去阿里的服务器控制台

添加规则   http 协议   端口号打开   我们就可以通过公网ip+端口访问我们的服务了  我这里是tomcat服务器,

然而  在运行了node 之后  我们也可以访问了,,大功告成,,合上电脑   却发现   服务又挂了,,这是怎么回事???

原来在linux  每个session 是有生命周期的   当前session下开启的进程会随着session的关闭而被杀死。。我们需要在运行node   **.js时  变为nohup  后台运行就行了   或者也可以把本次执行的命令变为一个常驻服务(类似于mysql),这里不再详述。

nohup npm start &
exit

ok???这样  就可以随时随地的访问远程电脑上的服务了。

  最后   如果需要数据库,,还有我们大部分时候肯定不会主机命加端口访问,,这该怎么做!!!

欢迎关注下一篇博客~~~~

猜你喜欢

转载自blog.csdn.net/weixin_41686779/article/details/82586447