javascript - 我想在 POST 命令中发送一些内容,而不需要用户在 Javascript 中输入该值

标签 javascript node.js mongodb hapi.js

我正在使用 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);
  });
}); 



附:示例取自 here 并进行修改和 here

您将使用哪种数据库驱动程序或选择 mongoose 由您决定。

关于javascript - 我想在 POST 命令中发送一些内容,而不需要用户在 Javascript 中输入该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48217491/

相关文章:

javascript - 在 .ejs 文件中获取当前页面?

javascript - 当我创建高阶组件时,我应该如何处理 "think"?

mongodb - js 日期转 Bson 时间戳

javascript - MongoDb、NodeJs、Express 和 Angular 2,来自两个集合的数据连接、检索和显示

javascript - 从 MongoDB 中删除具有特定键数的文档

javascript - mongoose - 当所有字段都等于新条目时避免重复

javascript - 未知提供商 : $mdThemingProvider

javascript - 让脚本等到 iframe 加载后再运行

node.js - 来自 SemanticUI 的 Jade 模板

javascript - 如何在 nodejs 上使用对象 jSON 数据进行嵌套循环