Markdown格式用Mongoose存入数据库后换行出现问题
发布于 3年前 作者 perchouli 1410 次浏览

有这么一段代码:

data = simplejson.dumps({
        'id': request.user.id,
        'name': request.user.username,
        'email': request.user.email,
        'avatar': request.user.get_profile().avatar,
    })

我用mongoose把这段代码存到数据库:

var postSchema = new Schema({
    title  :  { type: String }
    , content  :  { type: String }
    , date  :  { type: Date, default: Date.now }
});

post.content = req.body.content
post.save()

在数据库中形式如下:

{
  "content": "    data = simplejson.dumps({\r\n            'id': request.user.id,\r\n            'name': request.user.username,\r\n            'email': request.user.email,\r\n            'avatar': request.user.get_profile().avatar,\r\n        })",
  "date": ISODate("2012-06-03T15:41:28.976Z"),
}

很奇怪为什么会是\r\n,我的环境一直都是linux,是mongoose的原因?nodejs的原因?还是什么其他的,希望处理过类似问题的朋友分享一下经验让我减少排错时间,谢谢!

6 回复

把mongoose换成原生的写法,换行问题依旧,暂时排除mongoose的问题,难道nodejs还要单独设置换行方式?…

我晕,这和Mongo以及Node.js无关吧。 和你编辑器有关才对

编辑器是sublime。数据不是直接从编辑器写进去的,是网页textarea里的value。 同样的方式在Django的处理中存的是\n,从nodejs写进去就变成了\r\n 。

@Perchouli 你可以见识下http传输的内容是\r\n还是\n。这样的情况还真没遇到过哈

最终是直接把换行\r\n替换成\n。咨询一些做前端的朋友,他们都认为这是浏览器中textarea对换行的处理不同,django是中间做过什么处理了。算是解决了。

这个。。。

回到顶部