nodejs express router无法访问到数据库数据

nodejs express router无法访问到数据库数据,第1张

你要把task这个模型引用到你的router这个文件中,比如

var model = require('/model');

var task = modelTask;

具体文件名,你自己看着改,我只是打个比方

我知道 ie 怎么连接,别的浏览器不行。首先先去mysql官网下载个 odbc 然后安装,安装完再去控制面板找到“管理工具”--》“(ODBC)数据源”--》(如果是在自己电脑上测试就选

“用户DSN”,如果想被别人访问就选“系统DSN”) 然后添加mysqlodbc,然后把驱动的名字记下来(不是你起的名字,是后面自带的名字!),准备工作做完,我们就可以通过代码访问数据库了。(注:我第一次安装ODBC,用js调用时提示我未知数据源一类的话,卸载ODBC后再次安装ODBC就正常了) 用 ie 先调用odbc驱动 然后 *** 作mysql,话不多说,上代码!

//创建数据库连接对象

var conn = new ActiveXObject("ADODBConnection");

//创建数据集对象

var rs = new ActiveXObject("ADODBRecordset");

try{

//MySQL ODBC 53 ANSI Driver 这个就是我刚才说让你记得驱动的名字

var connectionstring = "Driver={MySQL ODBC 53 ANSI Driver};Server=127001;User=root;Password=root;Database=mysql;Option=3;Port=3306";

consolelog(connectionstring);

//打开连接

connopen(connectionstring);

//查询语句

var sql = " select from table1 ";

//打开数据集(即执行查询语句)

rsopen(sql,conn);

//(或者rs=connexecute(sql);)

//遍历所有记录

while(!rseof){

//WScript是Windows 的脚本宿主对象,详细情况请在windows帮助里查找。

//WScriptEcho输出记录的内容

documentwrite(rsFields("id") + "\t" + rsFields("name") + "\n");

//下一条记录

rsmoveNext();

}

//关闭记录集

rsclose();

//关闭数据库连接

connclose();

} catch(e){

//异常报告

documentwrite(emessage);

} finally{

//

}

是否有漏洞与代码有关,与此无关

其中主流的连接MySQL的方式是用mysql或者mysql2包,它们只是提供了调用驱动的api。很多框架中包括egg,nest都是基于此封装的。

但这不是SQL注入的关键,它只是一种连接方式。它只管连接,不管其他的,存不存在SQL注入完全靠写代码的人本身啊。

一句脚本本没有问题(知道不让直接放sql的,也是放注入),但是你如果让SQL变成由用户输入拼接而成,那就存在SQL注入的风险。

你应该去了解SQL注入的原理,然后进行防患,百度就能找到,然后可以用ORM,一般都对输入做了处理,还能避免直接写SQL(但其实难的地方还得自己写)。

有不理解可以追问。

// 实现与MySQL交互

var mysql = require('mysql');

var $conf = require('/cfg/cfg');

// var $util = require('/util/util');

var $sql = require('/articleSql');

// 使用连接池,提升性能

// var pool  = mysqlcreatePool($utilextend({}, $confmysql));

var pool  = mysqlcreatePool($confmysql);

moduleexports = {

  add: function (req, res, next,data,fn) {

    poolgetConnection(function(err, connection) {

      // 'INSERT INTO user(id, name, age) VALUES(0,,)',

      connectionquery($sqlinsert, data, function(err, result) {

        // 以json形式,把 *** 作结果返回给前台页面

        if(err)consolelog(err);

        

        if(fn)fn(req,res,next);

        // 释放连接 

        connectionrelease();

      });

    });

  }

  })

 };

 

 //cfgjs

 moduleexports = {

    mysql : {

        host : '127001',

        user : 'root',

        password : 'root',

        database : 'test',

        port : 3306

    }

};

//各个第三方都不一样吧。

原则上就是这样的。因为网络数据库是要注重并发性的,如果你长时间占用一个连接,那么你这个连接所涉及的记录就会被长时间锁定,其他所有用户都会无法访问,如果有多个用户同时 *** 作数据库,那网站基本上就瘫痪了。所以原则上都要求数据库的查询要做到随用随关闭。

以上就是关于nodejs express router无法访问到数据库数据全部的内容,包括:nodejs express router无法访问到数据库数据、js怎样连接和调用mysql数据库、菜鸟教程中的nodejs连接mysql数据库教程存在sql注入问题吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10195921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存