美文网首页
nodejs服务端部署

nodejs服务端部署

作者: 书简_yu | 来源:发表于2019-03-10 15:27 被阅读0次

服务器:阿里云轻量应用服务器 nodejs

  • 进入控制台登陆服务器

解决nvm不是命令

source /root/nvm/nvm.sh  // nvm可以帮助你下载nodejs

// nvm下载nodejs
nvm install 10.15.3

镜像帮助文档 包含nvm和下文中的pm2命令

代码管理

使用winSCP图形界面工具 + git 管理

WinSCP文档: https://help.aliyun.com/knowledge_detail/60132.html
下载git yum install git 可以用它创建目录,修改小文件等

本地创建简单demo上传至github,浏览器远程连接进入服务器 创建目录并
git clone

自动运行nodejs

pm2 start app.js   // 即自动node app.js

mongodb部署

创建文件夹

下载安装包 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.6.tgz

解压:tar -zxvf mongodb-linux-x86_64-4.0.6.tgz

根目录下创建 /data/db文件夹,跟windows上一样,如果不做配置

版本参考地址:https://www.mongodb.com/download-center/community

服务端运行mongodb

// 进入mongodb所在文件夹 下的bin目录,可以参考windows下的mongodb目录,也可以看winscp中的目录结构

./mongod   // 可以在windows下尝试尝试

自动运行

/lib/systemd/system/目录下新建mongodb.service文件, 名字自己取

[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/software/mongodb/bin/mongod
ExecStop=/software/mongodb/bin/mongod --shutdown

[Install]
WantedBy=multi-user.target
创建service文件
服务器重启使其生效
参考文章: https://www.jianshu.com/p/5a104184e010
  • 应用
const mongodb = require("mongodb");
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';

const express = require('express');

const app = express();

app.get('/', (req, res) => {

    MongoClient.connect(url, function(err, client) {
        
        client.db('yuyouxia').collection('music').find({}).toArray( (err, item) => {
            
            res.send(item);
            
            client.close();
        })
    });
})

app.listen(3000, () => {

    console.log('port 3000');
})

创建连接,从yuyouxia数据库中查询music集合中查找所有文档,并返回数据

tips: 要先在数据库中插入数据啊

my result
  • 其他

nodejs中post请求 中间件 body-parser

使用它可以帮你得到post请求发送过来的参数

const express = require('express');
const app = express();
const fs = require('fs');
const path = require('path');
const bodyParser = require('body-parser');
const interface = require('./interface/interface');

// 解析请求体
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

目前的项目结构

struct

index.js是启动项目的,test是小测试

index.js

const express = require('express');
const app = express();
const fs = require('fs');
const path = require('path');
const bodyParser = require('body-parser');
const interface = require('./interface/interface');

// 解析请求体
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// 首页
app.get('/', (req, res) => {
    
    const html = fs.readFileSync(path.resolve(__dirname, './index.html'), 'utf-8');
    
    res.send(html);
});

// 接口请求
app.use('/api', interface);

// 找不到则404
app.use((req, res, next) => {
    
    const html = fs.readFileSync(path.resolve(__dirname, './src/a.html'), 'utf-8');
    
    res.send(html);
})

// 3000端口监听
app.listen(3000, () => {
    
    console.log('port 3000');
});

新浪云的nodejs部署比阿里云的要方便,个人感觉

相关文章

网友评论

      本文标题:nodejs服务端部署

      本文链接:https://www.haomeiwen.com/subject/odbupqtx.html