小编nel*_*687的帖子

express.Router和app.get之间的区别?

我开始有express.Router/show,和我有点困惑.我一直在阅读express.Router网站,但看不到_when使用路由处理程序或何时使用express.Router.

正如我所看到的,如果我想在用户点击时显示页面或其他内容,express.Router我应该使用:

var express = require('express')    
var app = express()    
app.get("/show", someFunction)  
Run Code Online (Sandbox Code Playgroud)

一开始,我认为这是旧的,因为/show,是对还是这也是方法express.Router呢?

如果这是这样做的方式express.Router,express.Router用途是什么?

我读了几乎与上面相同的例子,但使用/show:

var express = require('express');
var router = express.Router();
router.get("/show", someFunction)
Run Code Online (Sandbox Code Playgroud)

那么,两个例子之间的区别是什么?

如果我只是想做一个简单的测试网站,我应该使用哪一个?

node.js express

232
推荐指数
5
解决办法
6万
查看次数

Django中的业务逻辑

我想知道在哪里放置不属于视图的代码,我的意思是逻辑.

我一直在阅读一些类似的帖子,但无法得出结论.

我能理解的是:

  • View就像一个控制器,很多逻辑不应该放在控制器中.
  • 模型也不应该有很多逻辑.

那么所有基于逻辑的东西应该在哪里呢?

我来自Groovy/Grails,例如,如果我们需要访问数据库,或者如果我们有一个复杂的逻辑,我们使用服务,然后将这些服务注入控制器.

在Django中包含除Views和Models之外的东西的.py文件是一个好习惯吗?

PS:我读过有些人用过services.py,但是其他人说这是一个不好的做法,所以我有点困惑......

python django

6
推荐指数
3
解决办法
6066
查看次数

busboy - 有没有办法在所有文件上传后发送响应?

我正在尝试使用node.js作为后端并将angular.js作为前端上传文件到服务器.我正在使用快递4 + busboy.我在前端有一张桌子,我应该显示我正在上传的所有文件.因此,如果我有3个文件并单击上传,angular应该将这些文件发布到node.js,并在获得响应后,使用这三个文件刷新表.这是我在角度中使用的功能:

function uploadFiles(files){
    var fd = new FormData();
    for(var i = 0; i<files.length; i++){
        fd.append("file", files[i]);
    }
    $http.post('http://localhost:3000/upload', fd, {
        withCredentials: false,
        headers: {'Content-Type': undefined },
        transformRequest: angular.identity
    }).success(refreshTable()).error(function(){
        console.log("error uploading");
    });
}
Run Code Online (Sandbox Code Playgroud)

这是来自node.js:

app.post('/upload', function(req, res) {
  var busboy = new Busboy({ headers: req.headers });
  busboy.on('file', function (fieldname, file, filename) {
    console.log("Uploading: " + filename);
    var fstream = fs.createWriteStream('./files/' + filename);
    file.pipe(fstream);
  });
  busboy.on('finish', function(){
    res.writeHead(200, { 'Connection': 'close' });
    res.end("");
  });
  return req.pipe(busboy);
});
Run Code Online (Sandbox Code Playgroud)

问题是,如果我上传了三个文件,一旦上传了第一个文件,node.js就会发送响应,因此只有上传的第一个文件才会更新表,如果我刷新页面,其余的文件会出现.我认为问题在于节点中的这一行:return req.pipe(busboy); …

node.js busboy

5
推荐指数
1
解决办法
4003
查看次数

Python/Django 和服务作为类

关于如何在 Django 中实现服务有任何约定吗?来自 Java 背景,我们为业务逻辑创建服务,并在需要的地方“注入”它们。不确定我是否以错误的方式使用 python/django,但我需要连接到 3rd 方 API,所以我使用 api_service.py 文件来做到这一点。问题是,我想将此服务定义为一个类,而在 Java 中,我可以在任何需要的地方注入这个类,它的行为或多或少像一个单例。是否有类似的东西我可以与 Django 一起使用,或者我应该将服务构建为单例并在某处获取实例,或者甚至只有单独的函数而没有类?

python django python-3.x

4
推荐指数
1
解决办法
1894
查看次数

向 django 选择字段添加新选择

我正在使用 Django 并尝试创建动态选择字段,我阅读了很多帖子,但找不到适合我情况的解决方案。我需要为“添加新元素”提供一个选择,因此如果用户找不到他的选择,他将能够添加一个新元素。

问题是我如何将该选项添加到选择元组中。例如我有这个:

YEAR_IN_SCHOOL_CHOICES = (

    ('OPTION1', 'OPTION1'),
    ('OPTION2', 'OPTION2'),
    ('Other', 'Other')
)
Run Code Online (Sandbox Code Playgroud)

如果用户选择“其他”,则会出现一个新的输入元素,当用户提交新选项时,我应该有:

YEAR_IN_SCHOOL_CHOICES = (

    ('OPTION1', 'OPTION1'),
    ('OPTION2', 'OPTION2'),
    **('OptionAdded', 'OptionAdded'),**
    ('Other', 'Other')
)
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?谢谢

django

3
推荐指数
1
解决办法
1310
查看次数

标签 统计

django ×3

node.js ×2

python ×2

busboy ×1

express ×1

python-3.x ×1