|
|
@@ -1,11 +1,36 @@
|
|
|
var us = {}; //注册命名空间。
|
|
|
//----------------------------------------引用包含系统模块---------------------------------
|
|
|
-http = require('http');//引用包含http处理类
|
|
|
+us.http = require('http');//引用包含http处理类
|
|
|
us.querystring = require("querystring"); //引用获取参数类
|
|
|
us.url = require("url"); //引用url地址处理类
|
|
|
+var path = require("path");
|
|
|
+var fs = require('fs');
|
|
|
+
|
|
|
//-----------------------------------------引用包含用户模块---------------------------------
|
|
|
-us._usdb = require('./us.db.js'); //包含另外一个文件
|
|
|
-us.mongodb = require('./us.mongodb.js'); //引用mongodb数据库文件
|
|
|
+//us._usdb = require('./us.db.js'); //包含另外一个文件
|
|
|
+// us.mongodb = require('./us.mongodb.js'); //引用mongodb数据库文件
|
|
|
+// us.webServer = require('./webServer');
|
|
|
+// us.readFile = require('./readFile');
|
|
|
+
|
|
|
+us.test = (req, res, _dir, dirname) => {
|
|
|
+ let html = "<head><meta charset='utf-8'></head>";
|
|
|
+ try {
|
|
|
+ // 用户访问目录
|
|
|
+ let files = fs.readdirSync(dirname + _dir);
|
|
|
+ let fileName = null;
|
|
|
+ for (let i in files) {
|
|
|
+ if (path.extname(files[i]) === "") {
|
|
|
+ us.test(req, res, _dir + '/' + files[i], dirname)
|
|
|
+ }
|
|
|
+ fileName = files[i];
|
|
|
+ html += "<div><a href='" + _dir + '/' +fileName + "'>" + fileName + "</a></div>";
|
|
|
+ }
|
|
|
+ return html
|
|
|
+ } catch (e) {
|
|
|
+ html += '<h1>您访问的目录不存在</h1>';
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
//----------------------------------------接受http请求--------------------------------------
|
|
|
us.http.createServer(function (req, res) {
|
|
|
@@ -17,7 +42,7 @@ us.http.createServer(function (req, res) {
|
|
|
//备注:'Access-Control-Allow-Origin': '*' 解决nodejs Access-Control-Allow-Origin不允许跨域调用的问题。现在用端口有这个问题,以后需要移除。
|
|
|
//console.log("ok");没有调试模式,只能用这个输出错误。
|
|
|
res.writeHead(200, { "Content-Type": "text/html;charset=utf-8", 'Access-Control-Allow-Origin': '*' });
|
|
|
- debugger;
|
|
|
+ // us.readFile(req, res, us.url, us.path)
|
|
|
|
|
|
//nodejs接收参数也要异步,编程起来就有点麻烦了,注意产生闭包情况。
|
|
|
//NodeJS引擎中许多对象都有预定的事件,如用户在发送http请求之后获得的http.ServerRequest对象就有data和end两个事件,
|
|
|
@@ -26,6 +51,13 @@ us.http.createServer(function (req, res) {
|
|
|
var params = '';
|
|
|
//获取参数中
|
|
|
req.on('data', function (chunk) { params += chunk; });
|
|
|
+ var allowPath = '/www'
|
|
|
+ var toPath = req.url;
|
|
|
+ if (allowPath == toPath) {
|
|
|
+ var result = us.test(req, res, toPath, __dirname)
|
|
|
+ }
|
|
|
+
|
|
|
+ res.end(result);
|
|
|
//获取参数结束。
|
|
|
req.on('end', function () {
|
|
|
//querystring.parse可以把形如mode=select&test=1111的字符串拆分成一个json对象,不过这个对象很奇怪,直接输出这个对象会报错
|
|
|
@@ -34,26 +66,26 @@ us.http.createServer(function (req, res) {
|
|
|
//只能通过以下方式获取其中的值。这就有一定的局限性。。还需要研究。
|
|
|
var _mode = _postJson.mode; //前台传递进来的插入删除等模式
|
|
|
var _usjson = _postJson.usjson; //前台传递进来的参数
|
|
|
- switch (_mode) {
|
|
|
- case "select":
|
|
|
- //访问mysql数据库
|
|
|
- us._usdb.aaaaaa(function (results) {res.end(results); });
|
|
|
- //us._usdb.usproselect("CALL PB_Select();", function (results) { res.end(results); });
|
|
|
- //访问mongodb数据库
|
|
|
- //us.mongodb.select("aaaaatest", function (results) { res.end(results); });
|
|
|
- //访问mongodb存储过程
|
|
|
- //us.mongodb.pro("test", function (results) { res.end(results); });
|
|
|
- //us.mongodb.testparam("ttt", function (results) { res.end(results); });
|
|
|
- break;
|
|
|
- case "insert": res.end(_usjson); break;
|
|
|
- default: res.end("default 1473"); break;
|
|
|
- }
|
|
|
+ // switch (_mode) {
|
|
|
+ // case "select":
|
|
|
+ // //访问mysql数据库
|
|
|
+ // // us._usdb.aaaaaa(function (results) {res.end(results); });
|
|
|
+ // //us._usdb.usproselect("CALL PB_Select();", function (results) { res.end(results); });
|
|
|
+ // //访问mongodb数据库
|
|
|
+ // //us.mongodb.select("aaaaatest", function (results) { res.end(results); });
|
|
|
+ // //访问mongodb存储过程
|
|
|
+ // //us.mongodb.pro("test", function (results) { res.end(results); });
|
|
|
+ // //us.mongodb.testparam("ttt", function (results) { res.end(results); });
|
|
|
+ // break;
|
|
|
+ // case "insert": res.end(_usjson); break;
|
|
|
+ // default: res.end("default 1473"); break;
|
|
|
+ // }
|
|
|
//res.end(_mode);
|
|
|
});
|
|
|
//备注第一个参数为构建连接字符串,第二个参数为异步查询数据库结束后调用的回调函数
|
|
|
//_usdb.usselect('SELECT * FROM ' + 'PBDirectory ' + 'limit 10', function (results) {if (results === 'false') { throw Error; } else { res.end(results);}});//加错误处理
|
|
|
//_usdb.usselect('SELECT * FROM ' + 'PBDirectory ' + 'limit 10', function (results) { res.end(results);});\
|
|
|
//res.end("\n node js end! ");
|
|
|
-}).listen(1337, "nodejs.1473.cn");
|
|
|
-console.log('Server running at http://nodejs.1473.cn:1337/');
|
|
|
+}).listen(1337, "127.0.0.1");
|
|
|
+console.log('Server running at http://127.0.0.1:1337/');
|
|
|
//上面2行代码必须转换为域名,否则会跨域错误
|