nodejs搭建linux服务器如何启动项目?

发布于 2022-09-07 08:08:18 字数 3363 浏览 13 评论 0

自己在本地创建了express项目,访问远端mysql增删改查,提供一个接口,本地访问localhost:8080/getUsers没有问题。

在云服务器(我用的华为云)上安装nodejs,安装express,然后:

express product

创建一个express项目,把本地bin、public、routes、views、app.js、package.json更新到服务器product目录下,安装依赖npm install,而后:

pm2 start bin/www

clipboard.png

但访问接口却无法访问,端口那些也是没有问题的,服务器添加了80和8081端口。

我在bin目录下单独写了myServer.js通过node myServer.js启动却是可以访问的,myServer代码如下:

var express = require("express");
var app = express();

app.get('/', function (req, res) {
    res.send("get");
});

app.post("/", function (req, res) {
    res.send("post");
});

app.get("/list", function (req, res) {
    var mysql  = require('mysql');
    var connection = mysql.createConnection({
        host     : '**.**.**.**',
        user     : 'root',
        password : '*****',
        port: '****',
        database: 'my_project',
    });
    connection.connect();

    var sql = 'SELECT * FROM product';
    connection.query(sql,function (err, result) {
        if(err){
            console.log('[SELECT ERROR] - ',err.message);
            return;
        }

        res.send(result);
    });
});

var server = app.listen(8081, function () {
    var host = server.address().address;
    var port = server.address().port;
    console.log('服务器启动host:' + host + ',port: ' + port);
});

这里使用119...**:8081/list是可以获取数据的

clipboard.png

如果我直接使用node bin/www启动会报错找不到Product.js

clipboard.png

这到底怎么回事?
另外问一问node直接启动和pm2启动的区别?

以下是远端目录:

clipboard.png

其他截图如下:
本地routes:
clipboard.png

product.js:

function Product() {
    this.name;
}
module.exports = Product;

products.js:

var express = require('express');
var router = express.Router();
var Product = require('./Product');
var URL = require('url');

/**
 * 获取product列表
 */
router.get('/getProducts', function(req, res, next) {
    var product = new Product();
    var params = URL.parse(req.url, true).query;
    var productList = new Array();
    var response = {status: params.id};
    if(params.id == '1') {
        product.name = "当前用户不存在,请稍后再试!";
        productList.push(product);
        response.data = productList;
        res.send(JSON.stringify(response));
    } else {
        var mysql  = require('mysql');
        var connection = mysql.createConnection({
            host     : '119.3.2.21',
            user     : 'root',
            password : '123Rfy123@',
            port: '8635',
            database: 'my_project',
        });
        connection.connect();

        var sql = 'SELECT * FROM product';
        connection.query(sql,function (err, result) {
            if(err){
                console.log('[SELECT ERROR] - ', err.message);
                return;
            }
            // for(var i in result) {
            //
            // }
            res.send(result);
        });
    }
});

module.exports = router;



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

回首观望 2022-09-14 08:08:18

感谢@typescript 提醒,原来就是大小写的问题。

徒留西风 2022-09-14 08:08:18

看着像大小写问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文