你要把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注入问题吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)