nodejs搭建linux服务器如何启动项目?
自己在本地创建了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
但访问接口却无法访问,端口那些也是没有问题的,服务器添加了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是可以获取数据的
如果我直接使用node bin/www启动会报错找不到Product.js
这到底怎么回事?
另外问一问node直接启动和pm2启动的区别?
以下是远端目录:
其他截图如下:
本地routes:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
感谢@typescript 提醒,原来就是大小写的问题。
看着像大小写问题