前情摘要:虽然群晖有web station 作为开发简单网页的服务器首选,但是web station 里面最好用的技术栈还是基于LNMP或者LAMP的php开发环境。对于学习nodejs的同学可能丈二和尚,摸不着头脑,到底如何在web station上运行nodejs?可能并不能快速找到相关文档以供解决问题。

而群晖的docker套件正如改革春风,它是各种应用甚至系统的容器,生产力强大,能够安装各种软件和环境,并且可视化界面让我们无需懂得多少代码就能快速构建开发和运行所需环境,本文介绍一种简单的nodejs 运行方法和用docker构建简单的web服务器。

php 的后端大概可以有 LNMP或者LAMP,实际上包括系统linux,Nginx或Apache,数据库mysql或者mariaDB,和PHP开发语言。

而本次采用技术栈为前端容易理解的基于JavaScript的Nodejs (which 替代了PHP),使用json格式的mongoDB which 替代mysql,简单网页暂不需要Nginx和Apache,开发系统选用centos 开发版。

运行容器添加独立的mongoDB和centos.

mongoDB开放映射端口,比如默认27017;centos 映射内部端口80(或者其他)为32770(或其他);

这样就可以通过ip地址:端口的方式访问mongoDB 和 centos的web服务器了。




群辉docker安装linux 群晖docker linux_node.js安装模式 的区别


centos容器详情:

包括

  1. 映射端口和装载路径文件夹到群晖,
  2. 安装部署nodejs
  3. 拷贝代码并最后node app 运行相关代码。

第一步:


群辉docker安装linux 群晖docker linux_multisim安装后无法连接数据库_02

映射端口


群辉docker安装linux 群晖docker linux_node.js安装模式 的区别_03

设置服务器存放文件夹

第二步centos下终端安装部署nodejs


群辉docker安装linux 群晖docker linux_群辉docker安装linux_04


nodejs的直接部署(终端命令)

首先安装 wget:

yum install -y wget

下载 nodejs 最新的 bin 包:

wget https:// nodejs.org/dist/v9.3.0/ node-v9.3.0-linux-x64.tar.xz

解压包

xz -d node-v9.3.0-linux-x64.tar.xz
tar -xf node-v9.3.0-linux-x64.tar

部署 bin 文件(让node 全局可用)

因为在根目录安装,路径为~/node-v9.3.0-linux-x64/bin。

ln -s ~/node-v9.3.0-linux-x64/bin/node /usr/bin/node
ln -s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npm

测试

node -v
npm

输出版本号,则部署 OK:


群辉docker安装linux 群晖docker linux_multisim安装后无法连接数据库_05


在www中npm安装所需模块:

包括


群辉docker安装linux 群晖docker linux_linux运行nodejs一般路径_06


npm init安装dependencies或者手动安装四个包

art-template作为页面分离和拼接字符串等的模板引擎,

mongoose 连接mongoDB数据库

router作为路由

serve-static访问照片、css等静态资源。

文件列表(简单模式)


群辉docker安装linux 群晖docker linux_linux启动php服务_07


model 设置数据库连接

public 存放静态资源

route设置路由

views存放art文件,即页面模块

app.js 引入模块和启动服务器。

编写好路由后,cd 到 www文件夹,node app 启动即可运行编写好的网页了。


PS:mongoDB可视化软件:compass

编辑器:vs code