我正在使用 mongoDB 和 Hapi 创建 REST API。我试图能够将信息从程序本身传递到数据库中。
例如, 我有一个配置如下的有效负载:
config: {
validate: {
payload : {
var_a: Joi.string(),
var_b: Joi.number(),
var_c Joi.string(),
var_d: Joi.string(), //IMEI
var_e: Joi.string(),
var_f: Joi.string(),
DONT WANT TO ENTER: Joi.array().items(Joi.number()),
var_g: random_schema
}
}
}
我有可以生成数组的代码,但我无法将其传递到有效负载中并查看数据库中的信息。我怎么能做这样的事呢?遗憾的是,我们没有在这个项目中使用 Express。感谢您提供的任何帮助!
最佳答案
我建议您观看有关 hapi
框架的教程或文档。
您询问的是框架基础知识(使用 hapi)和 JS 语言(分配/扩展对象)。
此示例必须涵盖您的问题:
const Hapi = require('hapi');
const Joi = require('joi');
const server = new Hapi.Server();
server.connection({
host: '127.0.0.1',
port: 8080
});
server.route({
method: 'POST',
path:'/devices/smartphones',
config: {
validate: {
payload: {
var_a: Joi.string(),
var_b: Joi.number(),
var_c Joi.string(),
var_d: Joi.string(), //IMEI
var_e: Joi.string(),
var_f: Joi.string(),
DONT WANT TO ENTER: Joi.array().items(Joi.number()),
var_g: random_schema
}
}
handler: (request, reply) => {
const data = Object.assign({},
request.payload,
{
category: 'devices',
subCategory: 'smartphones'
}
);
// save payload to db
db.collection("collectionNameHere").insertOne(data, (error) => {
if(error) {
console.log(error);
return reply('oops...').code(500);
}
reply().code(200);
});
}
}
});
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/mydb";
let db;
MongoClient.connect(url, (error, dbConnection) => {
if (error) throw error;
console.log('Connected to database');
db = dbConnection;
server.start(error => {
if (error) throw error;
console.log('Server running at:', server.info.uri);
});
});
您将使用哪种数据库驱动程序或选择 mongoose
由您决定。
关于javascript - 我想在 POST 命令中发送一些内容,而不需要用户在 Javascript 中输入该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48217491/