无法使route.get在节点中工作

时间:2015-10-29 20:59:02

标签: javascript node.js

我正在尝试通过节点中的路由器接收信息,抱歉我对node.js很新,但目前这都在app.js文件中:(我只是得到一个“不能GET / api /去localhost:1337 / api

var express = require('express');
var path = require('path');
var mysql = require('mysql2');

var app = express();

var router = express.Router();
this.connection = null;

function startCon() {
    console.log("www");
    return mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: 'root',
        database: 'users'
    })
}

function getAll(){
    console.log("bbb");
    this.connection = startCon();

      connection.query('SELECT * FROM user;', function (error, data) { 
        if(!error){
            console.log(data);
        }
        else {
            console.log("Error Selecting : %s ", error );
        }
    });
}

router.get('/api', function(req, res) {
    console.log("lol");
    userDal.getAll(function(err, data){
        if(!err){
            res.json(data);
        }
        else {
            console.log(err);
        }
    });
});

getAll();

app.listen(1337, function(){
    console.log('Server listening on port 1337');
});

2 个答案:

答案 0 :(得分:1)

您拥有收听请求的app.use('/', router); 和处理呼叫的{{1}},但您并没有将它们捆绑在一起。

你在代码的末尾错过了这个:

{{1}}

答案 1 :(得分:0)

查看the express demo,您不需要express.Router()来电。

router.get更改为app.get

app.get('/api', function(req, res) {
    console.log("lol");
    userDal.getAll(function(err, data){
        if(!err){
            res.json(data);
        }
        else {
            console.log(err);
        }
    });
});