So I’m working on expressJs and mongoosh connecting server to DataBase. For inserting documents I’ve created different file “data.js” and require this data.js to index.js.
My path of models and init(for initializing).
views
├───init
│ index.js
│ data.js
└───models
listing.js
index.js
const mongoose = require("mongoose");
const initData = require("./data.js");
const Listing = require("../models/listing.js");
main()
.then(() => console.log("Connected to DB"))
.catch(err => console.log(err));
async function main() {
await mongoose.connect('mongodb://127.0.0.1:27017/wanderlust');
}
const initDB = async () => {
await Listing.deleteMany({});
await Listing.insertMany(initData.data);
console.log("Data was initialized...");
};
initDB();
data.js
const sampleListings = [
{
title: "Cozy Beachfront Cottage",
description:
"Escape to this charming beachfront cottage for a relaxing getaway. Enjoy stunning ocean views and easy access to the beach.",
image: {
filename: "listingimage",
url: "https://unsplash.com/photos/hallway-of-building-LfqmND-hym8",
},
price: 1500,
location: "Malibu",
country: "United States",
},
];
module.exports = { data: sampleListings };
listing.js
const mongoose =require("mongoose");
const Schema=mongoose.Schema;
const listingSchema= new Schema({
title:{
type:String,
required:true,
},
description:{
type:String,
},
image:{
type:String,
// default:"https://www.istockphoto.com/photo/picturesque-morning-in-plitvice-national-park-colorful-spring-scene-of-green-forest-gm1093110112-293349147?utm_campaign=category_photos_bottom&utm_content=https%3A%2F%2Funsplash.com%2Fimages%2Fnature&utm_medium=affiliate&utm_source=unsplash&utm_term=Nature+Images%3A%3A%3A",
// set:(v)=>v===""?"https://www.istockphoto.com/photo/picturesque-morning-in-plitvice-national-park-colorful-spring-scene-of-green-forest-gm1093110112-293349147?utm_campaign=category_photos_bottom&utm_content=https%3A%2F%2Funsplash.com%2Fimages%2Fnature&utm_medium=affiliate&utm_source=unsplash&utm_term=Nature+Images%3A%3A%3A":v,
},
price:{
type:Number,
},
location:{
type:String,
},
country:{
type:String,
},
});
const Listing =mongoose.model("Listing",listingSchema);
module.exports=Listing;
So, my detailed error in index.js:
ValidationError: Listing validation failed: image: Cast to string failed for value "{ url: 'https://unsplash.com/photos/hallway-of-building-LfqmND-hym8' }" (type Object) at path "image"`
` at parallelLimit (C:node_projectnode_modulesmongooselibhelpersparallelLimit.js:23:5) {
stringValue: `"{ url: 'https://unsplash.com/photos/hallway-of-building-LfqmND-hym8' }"`,
messageFormat: undefined,
kind: 'string',
value: {
url: 'https://unsplash.com/photos/hallway-of-building-LfqmND-hym8'
},
path: 'image',
reason: null,
valueType: 'Object'
}
},
_message: 'Listing validation failed
New contributor
Mohit Patel is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.