Tag: expression

正则expression式不匹配具有属性的标签?

================================================== ======================= 编辑:我使用node.js,所以我没有访问的DOM,parsing与HTMLparsing器不是一个选项(这是不够有效,足以certificate通过这么less的文本传递) ================================================== ======================= 首先,我知道。 HTML +正则expression式=失败。 不过,我只需要它删除所有具有属性的标签。 以下是我到目前为止: exports.strip_tags = function(input, allowed) { // Strips HTML and PHP tags from a string allowed = (((allowed || "") + "") .toLowerCase() .match(/<[az][a-z0-9]*>/g) || []) .join(''); var tags = /<\/?([az][a-z0-9]*)\b[^>]>/gi, commentsAndPhpTags = /<!–[\s\S]*?–>|<\?(?:php)?[\s\S]*?\?>/gi; return input.replace(commentsAndPhpTags, '').replace(tags, function($0, $1){ return allowed.indexOf('<' + $1.toLowerCase() + '>') > […]

node.js – 不能让mongodb工作,可能安装错了?

我想这是在黑暗中的一个镜头,因为没有很多我可以告诉你的具体代码… 但我使用节点,并试图使用mongodb,但是我不能让mongodb连接。 我已经尝试了几个教程,几乎可以开箱即用。 在几个情况下,似乎没有任何直接引用数据库的页面将加载好。 例如,将会加载“posts / new”页面。 但'/'可能会引用显示post,只会静静地挂起(浏览器显示页面加载)。 如果例如我提交了一个新的职位浏览器挂起,并在terminal,我得到: Express app started on port 3000 Error: Invalid ObjectId at Function.fromString (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/drivers/node-mongodb-native/objectid.js:27:11) at ObjectId.cast (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/schema/objectid.js:99:16) at ObjectId.castForQuery (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/schema/objectid.js:133:17) at Query.cast (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/query.js:249:32) at Query.findOne (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/query.js:851:10) at Function.findOne (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/model.js:714:16) at /Users/xxx/Node_projects/noobjs/routes/articles.js:13:13 at paramCallback (/Users/xxx/Node_projects/noobjs/node_modules/express/lib/router/index.js:259:7) at param (/Users/xxx/Node_projects/noobjs/node_modules/express/lib/router/index.js:241:11) at pass (/Users/xxx/Node_projects/noobjs/node_modules/express/lib/router/index.js:253:5) GET /article/new 500 GET /articles/new 200 如果它有帮助,这里是上面使用的教程应用程序的package.json: { […]

express.js路由

这两个express.js路线匹配吗? /:campus/:tlf_id/message /:campus/:message_id/reply 在express.js看来,这样做。 我不确定我是否明白这一点。 也就是说,如果请求/12/90/reply /:campus/:tlf_id/message /12/90/reply可能会被/:campus/:tlf_id/message ?

Express.js req.sessionvariables不通过不同的路由存储会话variables

无法req.session variable 。 我将req.session.username设置为someVariable但是我没有定义。 下面的Express设置是否允许我访问每个路由中的req.sessionvariables? app = express.createServer( express.logger(), express.cookieParser(), express.session({ secret: 'keyboard cat' }) ) 快递网站似乎用这种方式。 编辑: 以下是我使用的一些其他代码: if(result[0] != undefined && result[0].Password == req.body.user.pass){ console.log("login successfull"); //Setting in the cookies some variable useful later req.session.userAuthenticated = true; req.session.username = result[0].Username; req.session.projects = result[0].Projects; 这是/login路线的一部分。 在这部分我检查用户是否正确地input了密码,并且是否已经注册。 如果我做一个console.log(req.session.username)我得到login用户的正确用户名。 在另一个路由中,像这样调用它/wathever我检查一个数据库 if(projects[i].name == projectName && projects[i].username == […]

带有express和mongoDB的NodeJS应用程序

我正在编写这个迷你RESTful应用程序,将请求发送到不同的URL。 为此,我正在使用nodejs,并表示设置不同的path。 作为一个数据库,我正在计划使用monogoDB(由christkv开发的node-mongodb-native)。 我的代码(不包括mongo尝试)看起来像这样: app.js /** * Module dependencies. */ var express = require('express') , routes = require('./routes') var app = module.exports = express.createServer(); var Db = require('mongodb').Db; var Server = require('mongodb').Server; var client = new Db('test', new Server('127.0.0.1', 27017, {})); // Configuration app.configure(function() { app.set('views', __dirname + '/views'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(__dirname + '/public')); […]

在express-validator中的错误之后停止执行stream程

我正在使用express-validator对Express中的request对象进行表单validation。 我做了如下的事情: req.onValidationError(function(msg) { res.render('signup', { error: msg }); }); req.check('email', 'Please enter a valid email.').len(1,256).isEmail; req.check('password', 'Your password must be at least 8 characters.').len(8,256); var user = { email: req.body.email, password: req.body.password }; User.create(user, function(err, result) { console.log(err, result); }); res.render('signup'); 问题是执行stream程继续,并且它执行我的User.create()方法时尝试两次呈现相同的资源。 它也会抛出一个Error: Can't use mutable header APIs after sent. 因为尝试了双重渲染。 我怎样才能防止这种情况发生?

如何在mixin中通过名称获取variables

表格(部分): include ../mixins/form-helpers form(action='/users/create', method='post') div.fields fieldset mixin field('text', 'email', 'Email') mixin field('password', 'password', 'Password') mixin field('password', 'password_confirmation', 'Confirm password') mixin field('username', 'username', 'Username') mixin submit('Register') 字段mixin看起来像这样: mixin field(type, n, label) .clearfix label(for='#{n}') #{label} .input input#password.span8(name=n, type=type, value=user[name]) 控制器: (req, res)-> user = email: 'someemail' password: '' password_confirmation: '' username: 'someusername' res.render 'users/new', user:user 我正在尝试使字段混合更通用一些,所以我可以重用它。 […]

从服务器redirect后页面需要刷新

新的问题,但真的很接近需要刷新页面在jQuery的移动 。 我有一个/login页面,第一次访问应用程序时,用户被redirect到(因此没有logging)。 顺便说一句,要login,用户只需提供一个用户名。 这个/login页面提供了一个带有单个文本input的表单,如下所示: <form method="post"> <span>Votre pseudo:</span> <input id="username" name="username" data-bind="value: username, valueUpdate: 'afterkeydown'" /> <input type="submit" id="join" data-icon="star" value="Rejoindre !" data-bind="enable : canJoin"/> </form> 在表单上没有action属性,因此(除非我遗漏了一些基本的东西,不要希望)表单提交后发送到/ login。 我用express来使用NodeJS,处理post请求服务器端看起来像这样: app.post("/login", function (req, res) { //do some stuff, store username for instance… res.redirect("/"); }); 我的确被redirect到了/匹配页面(索引),但是这个索引页面中的embedded式脚本没有运行,并且一些jquerymobile对象没有完全运行:这个索引文件有2个JQM页面(两个div与data-role =“page “),第一个JQM页面(div)的页脚有两个链接,一个指向第二个页面(div)(通过锚点,JQM方式)。 但是这个链接也不活跃。 我必须重新加载/页面才能使embedded的脚本运行($(document).ready,脚本在标题中…)以及所有JQM对象正确响应。 提示:在重新加载页面之前,在firebug中,post / login请求的响应有一个302 statut(是由于redirect指令服务器端),并且下面的get / request(肯定是由于redirect指令服务器端)尽pipe它可以加载页面和它embedded的单个图像,但是仍然有一个空的响应。 […]

更改LESS文件不会自动重新编译在节点/快递/咖啡设置

在用咖啡快速运行之后,我终于把LESS编译成了一个Node.js应用程序,之后我遇到了一个问题,我似乎没有什么想法: 对LESS文件的更改不会从express调用的LESS编译器重新渲染。 在我的主app.coffee文件中,可以find(按此顺序) app.use exp.compiler { src: __dirname + '/public', dest: __dirname + '/public', enable: ['less'] } app.use exp.methodOverride() app.use exp.bodyParser() app.use exp.cookieParser() app.use exp.static __dirname + '/public' 之后,会话和中间件被添加。 没有重新编译.css文件到.css,当请求通过应用程序重新启动持续存在的问题。 我已经尝试交换exp.compiler和exp.static行,但是除了第一个客户端请求(简而言之,css文件被呈现但没有被传递)发生什么变化之外,没有任何改变。 删除.css文件显然会让代码重新编译成.css文件,但这并不是我想像的那样。 还有什么我可以做的吗?

Nodejs Expressjs会话IP和浏览器代理匹配

我正在使用connect-mysql-session将会话存储在数据库中。 现在我的问题是我如何添加包含浏览器代理和IP地址的用户数据来检查会话是否有效? 我如何获得这些信息? 我如何检查它是否匹配? users.login(credentials,function(err, results) { //On errors if (err) { res.render(routes.index, { title: 'Login' }); //On success } else if (results[0]) { //Set session data and redirect to start page req.session.userdata = results[0]; req.session.userdata.email = req.body.email_login; req.session.is_logged_in = true; res.redirect('/start'); //Wrong credentials } else { req.flash('warning','Wrong password or login'); res.render('index', { title: 'Login' […]