2017-05-29 13 views
0

私は新しいことを表現しており、私はチュートリアルに従っています。私は現在、播種の部分にいる。私の問題は、私がこのコマンドを実行すると、node product-seeder.js端末にあり、データはdbでも作成されません。私のdbはまだ存在していませんが、データが保存されていれば作成されることを読んでいます。まず、Mongoose mpromise is deprecatedというエラーが出るので、私のファイルにはいつもmongooseが必要なときにmongoose.Promise = global.Promise;を入れます。マングースはデータを保存しません

var express = require('express'); 
 
var path = require('path'); 
 
var favicon = require('serve-favicon'); 
 
var logger = require('morgan'); 
 
var cookieParser = require('cookie-parser'); 
 
var bodyParser = require('body-parser'); 
 
var mongoose = require('mongoose'); 
 

 
var index = require('./routes/index'); 
 

 
var app = express(); 
 

 
//connect to mongose 
 
mongoose.Promise = global.Promise; 
 
mongoose.connect('localhost:27017/shopping-cart'); 
 

 
// view engine setup 
 
app.set('views', path.join(__dirname, 'views')); 
 
app.set('view engine', 'ejs'); 
 

 
// uncomment after placing your favicon in /public 
 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
 
app.use(logger('dev')); 
 
app.use(bodyParser.json()); 
 
app.use(bodyParser.urlencoded({ extended: false })); 
 
app.use(cookieParser()); 
 
app.use(express.static(path.join(__dirname, 'public'))); 
 

 
app.use('/', index); 
 

 
// catch 404 and forward to error handler 
 
app.use(function(req, res, next) { 
 
    var err = new Error('Not Found'); 
 
    err.status = 404; 
 
    next(err); 
 
}); 
 

 
// error handler 
 
app.use(function(err, req, res, next) { 
 
    // set locals, only providing error in development 
 
    res.locals.message = err.message; 
 
    res.locals.error = req.app.get('env') === 'development' ? err : {}; 
 

 
    // render the error page 
 
    res.status(err.status || 500); 
 
    res.render('error'); 
 
}); 
 

 
module.exports = app;

マイプロダクトスキーマ

var mongoose = require('mongoose'); 
 
var Schema = mongoose.Schema; 
 

 
var schema = new Schema({ 
 
\t imagePath: {type: String, required: true}, 
 
\t title: {type: String, required: true}, 
 
\t description: {type: String, required: true}, 
 
\t price: {type: Number, required: true} 
 
}); 
 

 

 
module.exports = mongoose.model('Product', schema);

models/product.jsで:ここで

は私app.jsですD最後に、私の製品シーダは seederディレクトリ内:

var Product = require('../models/product'); 
 
var mongoose = require('mongoose'); 
 
mongoose.Promise = global.Promise; 
 

 
var products = [ 
 
\t new Product({ 
 
\t \t imagePath: 'http://www.laptopmag.com/images/uploads/4989/g/apple-macbook-pro-13-2016-nw-g02.jpg', 
 
\t \t title: 'MacBook Pro 2016', 
 
\t \t description: 'Should we really call this a pro?', 
 
\t \t price: 1299 
 
\t }), 
 
\t new Product({ 
 
\t \t imagePath: 'https://ss7.vzw.com/is/image/VerizonWireless/pdp-feature4-d-iphone7-bn-v2?&scl=1&bgc=ffffff&scl=1&scl=2', 
 
\t \t title: 'iPhone 7 Plus', 
 
\t \t description: 'iPhone with no headphone jack. Lmao', 
 
\t \t price: 899 
 
\t }), 
 
\t new Product({ 
 
\t \t imagePath: 'https://www.extremetech.com/wp-content/uploads/2014/02/nokia-x-range.jpg', 
 
\t \t title: 'Nokia X', 
 
\t \t description: 'Failed Nokia Normandy project', 
 
\t \t price: 99 
 
\t }), 
 
\t new Product({ 
 
\t \t imagePath: 'http://cdn2.gsmarena.com/vv/pics/nokia/nokia-n9-all-1.jpg', 
 
\t \t title: 'Nokia N9', 
 
\t \t description: 'Dead on arrival Meego OS powered smartphone', 
 
\t \t price: 56 
 
\t }), 
 
\t new Product({ 
 
\t \t imagePath: 'https://store.storeimages.cdn-apple.com/4974/as-images.apple.com/is/image/AppleInc/aos/published/images/m/ac/macbook/air/macbook-air-gallery2-2014?wid=1292&hei=766&fmt=jpeg&qlt=95&op_sharpen=0&resMode=bicub&op_usm=0.5,0.5,0,0&iccEmbed=0&layer=comp&.v=1476297407703', 
 
\t \t title: 'MacBook Air', 
 
\t \t description: 'Most portable notebook from Apple', 
 
\t \t price: 999 
 
\t }) 
 
]; 
 

 
var done = 0; 
 

 
for(var i=0; i < products.length; i++) { 
 
\t var saved = products[i].save(); 
 

 
\t saved.then(function(err, result) { 
 
\t \t if(err) { 
 
\t \t \t console.log(err); 
 
\t \t } 
 
\t \t else { 
 
\t \t \t done++; 
 
\t \t \t if(done === products.length) 
 
\t \t \t \t exit(); 
 
\t \t } 
 
\t }); 
 
} 
 

 
function exit() { 
 
\t mongoose.disconnect(); 
 
\t console.log("Product seeding done!"); 
 
}

私はあなたの製品seeder.jsでマングースを経由してのMongoDBへの接続が欠落している間違った

答えて

0

をやって何を教えてくださいファイル

var Product = require('../models/product'); 
var mongoose = require('mongoose'); 
mongoose.Promise = global.Promise; 
//add this 
mongoose.connect('localhost:27017/shopping-cart'); 

上記の接続ステートメントを追加すると問題が解決するはずです。

関連する問題