私はNode.js/Express/MongoDBにアプリケーションをビルドしていますが、チームツリーハウスのチュートリアルに従っていますが、これはリモートサーバーではなくシェルを介してNode.jsを実行することでした。私はNode.jsとMongoDBをDigital Ocean Serverにセットアップしましたが、私は接続することができますが、私は私のAPIのためにヒットするURLの差異を試しました。Node.jsをリモートからMongoDBに接続すると、私のAPIのヒットするURLは何ですか?
今、私のアプリケーションはhttp://joshuaericbenner.me/projects/sideprojects/LinkedInApp/public/
から実行されていて、私のファイル構造は、ようにされています
LinkedInAppp
-> public -> index.html
-> src
-> api -> index.js (where the api calls exist)
-> database.js
だから私の質問は、私はhttp://joshuaericbenner.me/projects/sideprojects/LinkedInApp/api/usersのエンドポイントを打つと応答を取得すべきではないですか? (database.js)
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<h1>Not Found</h1>
<p>The requested URL /projects/sideprojects/LinkedInApp/api/users was not found on this server.</p>
<hr>
<address>Apache/2.4.18 (Ubuntu) Server at joshuaericbenner.me Port 80</address>
</body>
MongoDBの接続::私はポストマンにしようとすると
は現在、私はの応答を取得
'use strict';
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/LinkedInUsers',function(err){
if(err){
console.log("Failed to connect to mongodb");
}
else{
console.log("Successfully connected to mongodb");
}
});
私のサーバーのシェルから
モンゴ出力:
MongoDB shell version: 2.6.10
connecting to: test
> show dbs
LinkedInUsers 0.078GB
admin (empty)
local 0.078GB
test 0.078GB
> use LinkedInUsers
switched to db LinkedInUsers
> db.post.find()
{ "_id" : ObjectId("5810e578059f3fc430a6089b"), "formattedName" : "jb" }
Node.jsの出力私は自分のNode.jsアプリケーションを実行すると:
[email protected]:/var/www/html/projects/sideprojects/LinkedInApp# nodejs src/app.js
Now running on port 8080
Successfully connected to mongodb
ExpressのAPI(上記のようにindex.js):
'use strict';
var express = require('express');
var User = require('../models/user');
var router = express.Router();
//Get All Users
router.get('/users', function (req, res){
User.find({}, function(err, users){
if(err){
res.status(500).json({message: err.message});
}
res.json({users: users});
});
});
App.js は '厳格な使用';
var express = require('express');
var parser = require('body-parser');
var router = require('./api');
var app = express();
require('./database');
require('./seed');
app.use(parser.json());
app.use('/', express.static('public'));
app.use('/api', router);
app.listen(8080, function(){
console.log("Now running on port 8080");
});
ユーザーモデル:
'use strict';
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
formattedName: String,
id: String,
location: {
country: {
code: String
},
name: String
},
positions:
{
values:
[
{
company: {
id: Number,
location: {
name: String
}
},
location: {
name: String
},
id: Number,
isCurrent: Boolean,
summary: String,
title: String
}
]
},
publicProfileUrl: String
});
var model = mongoose.model('User', userSchema);
module.exports = model;
エンドポイントにヒットしたら実際にどのような出力が得られますか?コンソールは何を言いますか? – Soviut
あなたのユーザーモデルを表示する –
@katylavalleeが追加されました。完全なスキーマを持つレコードはありませんが、formattedNameを持つレコードがあるため、これが機能するはずです。 – joshbenner851