我是节点js的新手。
最初页面加载localhost:3000
调用index.html并重定向到allUsers.html
app.js
var express = require('express');
var path = require('path');
var app = express();
path = require('path'),
index = require('./routes/index');
app.use(express.static(path.join(__dirname, '.')));
app.use(express.static(path.join(__dirname, 'admin_4_angularjs')));
app.get('/', function(req, res)
{
res.sendFile(path.join(__dirname + '/admin_4_angularjs/index.html'));
});
module.exports = app;
var port = 3000;
app.listen(port, function()
{
console.log('Listening on ' + port);
});
main.js
// UI Bootstrap
.state('allUsers',
{
url: "/allUsers.html",
templateUrl: "views/allUsers.html",
data:
{
pageTitle: 'Users List'
},
controller: "allUsersController",
resolve:
{
allUserslist: function($http)
{
return $http.get("/users").then(function(response)
{
return response.data;
})
}
}
})
index.js
var express = require('express');
var mongodb = require('mongodb');
var router = express.Router();
var app = express();
var MONGODB_URI = 'mongodb://xxx.xxx.1.23:27017/RELRE';
var db;
var coll;
mongodb.MongoClient.connect(MONGODB_URI, function(err, database) {
if(err) throw err;
db = database;
});
router.get('/users', function(req, res) {
var collectionInfo = db.collection("UsersInfo");
collectionInfo.find({}).toArray(function(err, employees) {
res.status(200).json({'myCollection' : employees});
});
});
module.exports = router;
我在浏览器控制台下获得了404。
http://localhost:3000/users 404(未找到)
您能否告诉我如何解决此问题?
答案 0 :(得分:4)
你需要你创建的路由器,但是你需要告诉express使用它。
最简单的方法是在app.use(index)
路线之后将app.js
添加到GET
。
app.get('/', function(req, res)
{
res.sendFile(path.join(__dirname + '/admin_4_angularjs/index.html'));
});
app.use(index)
Express会自上而下查找匹配的路由,因此在查找/users
路由时,它会首先检查您的/
路由,然后检查您包含的路由器的路由。
但是,如果您计划使用多个路由器,我还建议提供app.use
的基本路径,指示路由器应处理以该基本路径开头的所有路由。例如,在您的特定情况下:
app.use('/users', index) // may also want to give the router a more meaningful name
然后在index.js
中修改路由器,如下所示:
router.get('/', function(req, res) { // within the router, '/users' is now assumed to be the base path
// Logic for this route
});