In my Node JS/Express I am trying to query ID using following code:
router.get('/module/:id/', (req, res ) => {
try {
console.log('in get module')
const luamodule = LuaModule.findById('5eb2818c955bc7202498cd09')
console.log('module name is ' + luamodule.name)
} catch (error) {
console.log('In error --> ' + error)
res.status(404).send(error.Message)
}
})
Though record exists with ID - 5eb2818c955bc7202498cd09, function does not return record.
console.log prints "module name is undefined" as output.
Following the luamodule.js in models directory
const validator = require('validator')
const luaModuleSchema = new mongoose.Schema({
name: {
type: String,
required: true,
trim: true
},
email: {
type: String,
// unique: true,
required: true,
trim: true,
lowercase: true,
validate(value) {
if (!validator.isEmail(value)) {
throw new Error('Email is invalid')
}
}
},
environment: {
type: String,
required: true,
trim: true,
},
description: {
type: String,
required: true,
trim: true,
},
modulefile: {
type: Buffer
},
})
const luaModule = mongoose.model('LuaModule', luaModuleSchema)
module.exports = luaModule ```
End objective of the exercise is to accept the parameters from client and return the zip file stored into database.
Appreciate any help in this regard.
node.js is asynchronous, this LuaModule.findById('5eb2818c955bc7202498cd09')
code returns Promise
object.
You have to resolve this promise to get result, try this way
router.get('/module/:id/', async (req, res ) => {
try {
console.log('in get module')
const luamodule = await LuaModule.findById('5eb2818c955bc7202498cd09')
console.log('module name is ' + luamodule.name)
} catch (error) {
console.log('In error --> ' + error)
res.status(404).send(error.Message)
}
})
You Can Follow This Code
Model
const validator = require('validator')
const luaModuleSchema = new mongoose.Schema({
name: {
type: String,
required: true,
trim: true
},
email: {
type: String,
// unique: true,
required: true,
trim: true,
lowercase: true,
validate(value) {
if (!validator.isEmail(value)) {
throw new Error('Email is invalid')
}
}
},
environment: {
type: String,
required: true,
trim: true,
},
description: {
type: String,
required: true,
trim: true,
},
modulefile: {
type: Buffer
},
})
const LuaModule = mongoose.model('LuaModule', luaModuleSchema)
module.exports = LuaModule
> Controller
router.get('/module/:id/', async (req, res ) => {
try {
console.log('in get module')
const luamodule =await LuaModule.findById('5eb2818c955bc7202498cd09')
console.log('module name is ' + luamodule.name)
} catch (error) {
console.log('In error --> ' + error)
res.status(404).send(error.Message)
}
})
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.