01/10/2018, 10:59

Tại sao heroku không hiểu app.get('/',function(){})

https://thuc101.herokuapp.com/

https://thuc101.herokuapp.com/ -->//Cannot GET /
https://thuc101.herokuapp.com/test/ ---->
// url —> /test/ ; protocol —> http ; host —> thuc101.herokuapp.com ; originalUrl —> /test/ ;

https://thuc101.herokuapp.com/test/aaa
url —> /test/aaa ; protocol —> http ; host —> thuc101.herokuapp.com ; originalUrl —> /test/aaa ; param —> aaa ;

Nó không chạy cái https://thuc101.herokuapp.com/

code mình đây
index.js

const express = require('express');
const app = express();
var port=process.env.PORT || 8080
app.use(express.static(__dirname + '/public'));
function obj_to_string(obj) {
    var kq = "";
    for (var name in obj) {
        kq += require('util').format(' %s ---> %s ; ', name, obj[name]);
    }
    return kq;
}
app.get('/',function(req,res){
    //res.send('hello world');
    res.render('index');
})
app.get('/test/:cmd', function (req, res) {
    var data = {
        url: req.url,
        protocol: req.protocol,
        host: req.get('host'),
        originalUrl: req.originalUrl,
        param: req.params.cmd,
    }
    res.send(obj_to_string(data));//( String(data) );//("hello");//( JSON.stringify(data) );
})
app.get('/test', function (req, res) {
    var data = {
        url: req.url,
        protocol: req.protocol,
        host: req.get('host'),
        originalUrl: req.originalUrl,
    }
    res.send(obj_to_string(data));//( String(data) );//("hello");//( JSON.stringify(data) );
})
app.listen(port, function () {
    console.log('server listen http://localhost:%s', port);
});

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>hello world</title>
</head>

<body>
    <h2>hello world</h2>
</body>
</html>

có bạn nào giải thích giúp
chạy dưới local ok

Zhang Jike viết 13:08 ngày 01/10/2018

https://thuc101.herokuapp.com/

hi, bạn đã thử xem log server chưa?
Chạy lệnh: heroku logs

Thuc Nguyen Tan viết 13:14 ngày 01/10/2018

Làm được rồi bạn ;

Simple node js framwork

Zhang Jike viết 13:14 ngày 01/10/2018

Mình thấy bạn code hơi gọi là chưa đúng convention, hãy luyện tập trước khi nó thành thói quen xấu. Code cũng sáng hơn. Với lại bạn nên tập thay dùng var bằng khai báo constlet :

const express = require('express');
const app = express();
const obj_to_string = obj => {
    let kq = "";
    for (let name in obj) {
        kq += require('util').format(' %s ---> %s ; ', name, obj[name]);
    }
    return kq;
};

app.set('port', process.env.PORT || 8080);

app.use(express.static(__dirname + '/public'));

app.get('/', (req, res) => res.render('index'));
app.get('/test/:cmd', (req, res) => {
    const data = {
        url: req.url,
        protocol: req.protocol,
        host: req.get('host'),
        originalUrl: req.originalUrl,
        param: req.params.cmd,
    };
    res.send(obj_to_string(data));//( String(data) );//("hello");//( JSON.stringify(data) );
});
app.get('/test', (req, res) => {
    const data = {
        url: req.url,
        protocol: req.protocol,
        host: req.get('host'),
        originalUrl: req.originalUrl,
    }
    res.send(obj_to_string(data));//( String(data) );//("hello");//( JSON.stringify(data) );
});
app.listen(app.get('port'), function () {
    console.log('server listen http://localhost:%s', app.get('port'));
});

Chắc bạn mới làm quen với nodejs. Mình có thể gợi ý cho bạn sử dụng template engine như pug để tạo ứng dụng dynamic hơn. Các controller thì bạn nên tách ra file riêng. cũng như các routes.

Thuc Nguyen Tan viết 13:11 ngày 01/10/2018

hix mới đó mà đã hai tuần!!! mình đang xài ejs mình thích cái này hơn.
Mình muốn kiếm ở back end và frond end sử dụng chiêu thức giống nhau!!!

Zhang Jike viết 13:02 ngày 01/10/2018

Hi, mình cũng chỉ gợi ý thôi :3 mình suggest jade/pug vì cú pháp nó sáng sủa hơn. Về lâu vè dài cũng k dùng template engine nữa mà dùng Single Page App. Muốn sử dụng server rendering thì Sài universal web app như nextjs (react) hay angular universal…

Bài liên quan
0