Node/Express 的 MongoDB 示例 AJAX 调用?

2024-01-13

这是从一个非常基本的页面开始:HTML 表单、一个按钮和一个 div 框。

单击按钮将通过 AJAX POST 表单数据。

数据将存储在 MongoDB 中,并在不刷新页面的情况下检索到 div-box 中。

来自index.html的AJAX:

$(document).ready(function()
{   

    // handle button clicks         
    $('#buttonID').click(function() {

        // make an ajax call
        $.ajax({
            dataType: 'jsonp',
            jsonpCallback: '_wrapper',
            data: $('#formID').serialize(),
            type: 'POST',
            url: "http://localhost:9999/start",
            success: handleButtonResponse,
            });
    });

    function handleButtonResponse(data)
    {
        // parse the json string
        var jsonObject = JSON.parse(data);
        $('#reponseID').append( jsonObject.message );
    }

});

app.js:

var express = require('express'),
    app = express();
    cons = require('consolidate');
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server;

app.engine('html', cons.swig);
app.set('view engine', 'html');
app.set('views', __dirname + "/views");

var mongoclient = new MongoClient(new Server('localhost', 27017,
                                                { 'native_parser' : true }));

var db = mongoclient.db('database_name');

app.get('/', function (req, res) {

    db.collection('collectionName').find({}, function (err, doc) {
            res.render('index', doc);   
    });

    response.writeHead(200, {"Content-Type:": "application/json"}); 
    var submittedPost = {};
    submittedPost['message'] = 'Proof that Node and Mongo are working..';
    response.write( "_wrapper('" );
    response.write( JSON.stringify(submittedPost) );
    response.write( "')");              
    response.end();

});

app.get('*', function (req, res) {
    res.send("404..", 404);
});

mongoclient.open(function (err, mongoclient) {

    if (err) throw err

    app.listen(9999);
    console.log("Express server started on port 9999");
});

JSON 如何/从哪里连接到 MongoDB?

另外,Express 是否需要模板引擎,例如 Consolidate?如果是这样,它如何/在哪里适合?


几点建议

关于index.html中的ajax调用

  1. If your index.html由同一服务器提供服务,请不要使用跨域调用。这url财产在$.ajax可能是一个相对网址,例如/start.
  2. 您也可以考虑不使用jsonp要求。

电话可能是这样的

$.ajax({
    dataType: 'json',
    data: $('#formID').serialize(),
    type: 'POST',
    url: "./start",
    success: handleButtonResponse,
});

JSON 如何/从哪里连接到 MongoDB?

在你请求的ajax调用中./start,所以你的express服务器中应该做同样的路由。喜欢

app.get('/start', function (req, res) {    
    db.collection('collectionName').insert({req.data}, function (err, doc) {
           //rest of code 
    });    
});

Express 是否需要模板引擎,例如 Consolidate?如果是这样,它如何/在哪里适合?

你有很多模板选择,比如 jade、ejs、hbs 等等。 如果您使用 jade 或其中任何一个,您在快速路由中的 html 渲染代码将会得到简化。

没有模板引擎

response.writeHead(200, {"Content-Type:": "application/json"}); 
var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.write( "_wrapper('" );
response.write( JSON.stringify(submittedPost) );
response.write( "')");              
response.end();

使用 jade(现在是哈巴狗)这样的模板引擎

var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.json(submittedPost);

另外,使用模板引擎,您可以使用服务器端变量渲染模板,并且可以在模板中访问它们,例如

app.get('/mypage', function (req, res) { 
    res.render('mytemplate_page',{template_variable:some_variable});
});   

你可以使用template_variable在模板内用于循环或显示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node/Express 的 MongoDB 示例 AJAX 调用? 的相关文章

  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • 限制 Dropzone 仅上传特定类型的文件

    我正在使用 Dropzone 上传文件 这是我的代码 div div
  • Cosmos DB Mongo API 如何管理“请求率很大”情况

    我有以下代码 async function bulkInsert db collectionName documents try const cosmosResults await db collection collectionName
  • jQuery 中的 $('') 与 $('')

    我看到人们以两种不同的方式在 jQuery 中创建 HTML 元素
  • 为什么我们使用 SpreadsheetApp.flush()?

    我的理解是 flush https developers google com apps script reference spreadsheet spreadsheet app flush有助于在功能发生时执行这些功能 而无需将它们捆绑在
  • JavaScript:常量属性

    在javascript中 我可以将对象的属性声明为常量吗 这是一个示例对象 var XU Cc Components classes or function aXU this Cc Components classes var XU new
  • 限制号mongodb 输入中的行数

    如何限制数量 在kettle中使用的mongodb输入转换中检索到的行数 我尝试在 mongodb 输入查询中使用以下查询 但它们都不起作用 查询 限制 10 或 limit 10 请让我知道我哪里出错了 谢谢 迪普蒂 有几个查询修改操作符
  • “|”是什么意思(单管道)在 JavaScript 中做什么?

    console log 0 5 0 0 console log 1 0 1 console log 1 0 1 为什么0 5 0返回零 但任何整数 包括负数 都返回输入整数 单管道 有什么作用 这是一个按位或 https developer
  • nodemon 安装错误“没有可用于超时的有效版本”

    尝试在全新的节点项目中安装 nodemon 时出现此错误 我创建了一个名为 my project 的空白文件夹 然后 在其中 我执行了创建一个 package json 文件 npm init f 然后当尝试运行时 npm install
  • 有没有办法伪造同步 XHR 请求?

    我正在使用 Emscripten 系统将一堆 C 代码移植到 Javascript C 代码有很多调用fopen这是一个同步 IO 调用 在 Emscripten 中 我们使用对本地资源的 XHR 请求来模拟这一点however 在 Fir
  • NodeJS hmac 摘要问题与重音

    我正在对以下代码与 Ruby PHP 和 NodeJS 进行并排比较 使用 NodeJS 得到错误的响应crypto module PHP hash hmac sha256 text Ruby OpenSSL HMAC hexdigest
  • jQuery 悬停时滚动到 div 并返回到第一个元素

    我基本上有一个具有设定尺寸的 div 和overflow hidden 该 div 包含 7 个子 div 但一次只显示一个 我希望当它们各自的链接悬停时能够平滑地垂直滚动 但是 第一部分 div 没有链接 并且是没有悬停链接时的默认部分
  • JavaScript Promise 不执行 .then()

    我在 JavaScript 中的 Promise 方面遇到了一些问题 我想做的是获得一个地址列表 然后对于每个地址 我需要调用地理编码 API 来获取 lat lng 然后我将继续将标记与热图一起绘制 这是我的代码 let promiseK
  • Outlook 加载项,无法读取未定义的属性“BeginRequestEventArgs”

    我使用 Visual Studio 开发了 Outlook 插件 我的插件有一个按钮 用于填充会议邀请正文中的详细信息并添加所需的与会者 这在 99 的情况下都有效 但是 时不时地它会给我下面的 JavaScript 错误 Uncaught
  • 下载中带有文件名的 NodeJS sendFile

    我尝试使用以下代码将文件发送给客户端 router get get myfile function req res next res sendFile other file name dat 它工作正常 但当用户从以下网址下载此文件时我需要
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相
  • 检测浏览器选项卡是否具有焦点

    是否有可靠的跨浏览器方法来检测选项卡是否具有焦点 场景是 我们有一个定期轮询股票价格的应用程序 如果页面没有焦点 我们可以停止轮询并为每个人节省流量噪音 特别是当人们喜欢打开具有不同投资组合的多个选项卡时 Is window onblur
  • AngularJS 在指令运行之前通过 AJAX 检索数据

    我正在使用 AngularUIuiMap http angular ui github com directives map实例化谷歌地图的指令 uiMap 指令非常适合处理硬编码数据 mapOptions and myMarkers 但是
  • DOM 解析器 Chrome 扩展内存泄漏

    问题 我开发了一个扩展程序 可以拦截 Web 请求 获取 Web 请求来源的 HTML 并对其进行处理 我使用 DOMParser 来解析 HTML 并且意识到 DOMParser 正在导致大量内存泄漏问题 最终导致 chrome 扩展崩溃
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保

随机推荐

  • 事件的 Google Analytics 屏幕名称

    我对 Google Analytics 中的 屏幕名称 维度感到困惑 如果您转到 行为 gt 事件 gt 屏幕 您就会看到它 我想知道如何将屏幕名称附加到事件中 目前我正在跟踪屏幕浏览 点击 和事件 点击 我认为分析可以通过查看最后一个屏幕
  • 从 MySQL 中的表的一部分中选择最小值和最大值

    如果我想从整个表中选择最小值和最大值 我可以使用 SELECT min price as min price max price as max price FROM prices 但是如何从表的一部分中选择最小值和最大值呢 例如 我的表中有
  • 经典asp和ASP.NET之间的密码加密/解密

    我有 2 个网站 一个用经典 ASP 编写 另一个用 ASP NET 1 1 框架 编写 这两个应用程序都使用登录机制来验证基于共享数据库表的用户凭据 到目前为止 密码存储在单向 MD5 哈希中 这意味着如果人们丢失旧密码 则必须为其提供新
  • 用于计算百分位数的条件数组

    我有一些数据如下 val crit perc 0 415605498 1 perc1 0 475426007 1 perc1 0 418621318 1 perc1 0 51608229 1 perc1 0 452307882 1 perc
  • iOS VoiceOver 崩溃(消息发送到已释放的实例)

    在启用 VoiceOver 的情况下运行我的应用程序时 我遇到了奇怪的崩溃 该应用程序有一个侧边栏界面 如 Facebook 当点击其中之一时UITableViewCells 在侧边栏中UITableView 我换出视图控制器 根据点击的单
  • 如何设置 JMenuItem 的大小?

    正如你所看到的 拥有这些东西是很丑陋的JMenuItem是 菜单项的宽度非常小 这是代码 JMenu menuOne new JMenu MenuOne JMenu menuTwo new JMenu MenuTwo JMenu menuT
  • 如何使用 pytest 装置和 django 在unittest中创建类似于“setUp”的方法

    我的测试文件中有下面的代码并尝试重构它 我是 pytest 的新手 我正在尝试实现与 unittest 可用的类似方法 setUp 以便能够将数据库中创建的对象检索到其他函数 而不是重复代码 在这种情况下我想重用month from 测试设
  • @ManyToOne 和 @OneToOne 与 @EmbeddedId 的关系

    我正在尝试将数据库实体的 id 从单个 long 更改为由两个 long 组成的复合 id 这两个 long 封装在我的 ID class 中 如下所示 您会为 ManyToOne 和 OneToMany 关系使用什么注释 我的注释是否有错
  • Capistrano 3:在任务中使用服务器自定义变量

    我有多阶段多服务器设置 在我的任务中我需要使用服务器名称 例如在 stagin rb 我有 set stage staging Define servers server xxx xx xx xxx user deploy roles w
  • 使用Automapper时如何忽略特定类型的属性?

    假设我有两种类型 class Type1 public int Prop1 get set public string Prop2 get set public string Prop3 get set class Type2 public
  • SwiftUI:当 List 和 ForEach 嵌入 TabView 时,WatchOS 8.1 中的 NavigationView 错误

    下面的代码在 WatchOS 7 和 8 0 中运行良好 但现在在 8 1 中 点击该行将导航到目的地 但随后立即导航回根视图 我提交了反馈 FB9727188 并包含以下内容来演示该问题 struct ContentView View S
  • 如何访问 SwiftUI 中的子视图?

    我正在开发 SwiftUI 感觉它与 React 非常相似 刚才我正在自定义一个SwiftUI的Button 遇到一个问题 无法动态访问Button的子视图 以下代码是我要做的 struct FullButton View var acti
  • javascript 原型和闭包中的“this”访问

    我是js初学者 对下面的代码感到困惑 Foo function arg this arg arg Foo prototype init function var f function alert current arg this arg a
  • 添加一个点来扩展多边形而不将其附加到 Google 地图中?

    我正在通过标记在 Google 地图中构建一个多边形 可以拖动这些标记来重塑它的形状 因此 当有 3 个标记时 将绘制多边形 并在形状中附加更多标记 将其扩展 当用户只想遵循简单的顺时针 逆时针模式时 这很好 但是当他想要通过其边缘之一扩展
  • 显示播客列表中的剧集列表

    我正在尝试显示特定作者的播客频道列表 选择播客后 显示相关剧集 我能够独立完成每一项工作 但不知道如何将两者联系起来 现在我的作者播客列表是使用以下命令生成的iTunes 应用商店搜索 API http www apple com itun
  • 用于在输入点和数字后禁止输入点的正则表达式 JavaFX

    我需要输入用逗号分隔的连续整数和实数 如下所示 2 12 4 3 我禁止通过以下表达式连续输入两个逗号 两个点和除数字之外的所有其他字符 2 d 但有了它我可以输入 2 12 4 3 即输入点和数字后 可以再次输入点 且只能是数字或逗号 我
  • Excel 无法在 angularjs 中正确生成

    我在用angularjs并在filesaver js的帮助下使用blob生成excel表我得到了正确的结果 但excel无法在Micrsoft Excel中正确打开 它正在工作 但我没有得到单元格 它显示黑白页面 但内容在那里 帮助如何解决
  • 单元测试 MockHttpServletRequest 不返回内容类型

    我希望应用程序从我的 Java 类返回 JSON 对象 成功和失败情况 我定义了一个 RestControllerAdvice处理来自控制器的错误 我的程序也在json中正确显示错误消息 但问题出在单元测试 问题是当它抛出时 org spr
  • 在没有 gcc 或 root 访问权限的共享主机上安装需要 gcc 的 python 模块

    我正在使用 Hostgator 共享作为生产环境 并且在使用以下命令后安装一些 python 模块时遇到问题 pip 安装 MySQL python 点安装枕头 结果是 无法执行 gcc 权限被拒绝 错误 命令 gcc 失败 退出状态为 1
  • Node/Express 的 MongoDB 示例 AJAX 调用?

    这是从一个非常基本的页面开始 HTML 表单 一个按钮和一个 div 框 单击按钮将通过 AJAX POST 表单数据 数据将存储在 MongoDB 中 并在不刷新页面的情况下检索到 div box 中 来自index html的AJAX