2017-11-14 4 views
0

Ich habe eine seltsame Situation und ich bin nicht in der Lage, herauszufinden, warum. Ich lerne MEAN und haben die folgende Konfiguration:console.log in express.js route nicht protokollieren mongodb ._id Feld

Meine PUG-Datei:

br 
    for product in products 
    div.container 
     div.row.border 
     div.col-md-3 
      p= product.name 
      p= product._id 
     div.col-md-3 
      p= product.description 
     div.col-md-3 
      p= "$" + " " +product.price 
     div.col-md-3 
      form(action="/cart", method="post") 
      input(type="hidden", value="#{product._id}" , name="id") 
      button(type="Submit") Add To Cart 

Meine index.js Datei (grundlegendste nur meine Dokumente anzuzeigen und löschen)

var express = require('express'); 
var router = express.Router(); 
var cart = require('../lib/Cart.js'); 
var db = require('../lib/db.js'); 
var database = require('../database.js') 

var mongoose = require('mongoose'); 
var Products = mongoose.model('Product'); 
var User = mongoose.model('User'); 

mongoose.connect = ('mongodb://localhost/products'); 


/* GET home page. */ 
router.get('/', function (req, res) { 
    // console.log(sayHelloEnglish()); 

    Products.find(function (err, products) { 
     res.render('index', { title: 'Express 2017 ', products: products }); 
     console.log(products); 
    }); 
}); 


router.post('/', function (req, res) { 
    // var newUser = new User ({name : req.body.name}); 
    // newUser.save(function(err, users){ 
    // res.render('index', {title: "whatever"}) 
    //}); 

    var newProduct = new Products({ name: req.body.name, description: req.body.description, price: req.body.price }); 
    newProduct.save(function (err, products) { 
     res.render('index', { title: "PRODUCTS", products: products }); 
    }); 
}); 

//console.log is logging #{product._id} and not the value??? 
router.post('/cart', (function (req, res) { 
    var id = req.body.id 
    console.log(id); 
    res.render('cart', {title: "Cart"}); 
})); 

module.exports = router; 

Hier ist die Frage: Mein console.log Ergebnis ist

#{product._id} 

Es ist nicht die tatsächliche ID, die in etwa so ist: 5a0341e2ff549f2de8e307be Jede Einsicht würde sehr geschätzt werden, da ich nicht in der Lage bin, es herauszufinden. Warum console.log zeigt die @ {product._id} und nicht die tatsächliche ID-Wert?

Antwort

1

Diese Art von Attribut wird nicht mehr in Mops unterstützt:

input(type="hidden", value="#{product._id}" , name="id") 

Verwendung dieses stattdessen:

input(type="hidden", value=product._id , name="id") 

Weitere Beispiele in der Migrationsleitfaden hier: https://pugjs.org/api/migration-v2.html#attribute-interpolation

+0

Danke. Habe es schon lange nicht mehr benutzt. – Marco