小编Tho*_*ton的帖子

不确定如何在Express/MongoDB应用程序中处理数据访问对象/层

我有一个运行MongoDB的Express应用程序.我想从服务器级别分离出我的数据库访问.但是,为了获得数据库调用的结果,我似乎只能做以下两件事之一:

将Res作为参数传递

//server.js
...
var dbApi = require('../data/db-api.js');
...
app.get('/api/user', dbApi.getUsers(function (data) {
  res.send(data);
}));
...

//db-api.js
...
getUsers: function (callback) {
  MongoClient.connect(url, function (err, db) {
  if (err) {
    throw err;
  }

  db.collection(collections.Users)
    .find({})
    .toArray(function (error, documents) {
      db.close();
      callback(documents);
    });
  });
}
...
Run Code Online (Sandbox Code Playgroud)

假设db-api.js中的Express req/res范例

//server.js
...
var dbApi = require('../data/db-api.js');
...
app.get('/api/user', dbApi.getUsers);
...

//db-api.js
...
getUsers: function (req, res) {
  MongoClient.connect(url, function (err, db) {
  if (err) {
    throw err;
  }

  db.collection(collections.Users)
    .find({})
    .toArray(function (error, documents) …
Run Code Online (Sandbox Code Playgroud)

javascript architecture mongodb node.js express

8
推荐指数
1
解决办法
5834
查看次数

使用ImageIO.write()创建JPEG会创建一个0字节的文件

我正在尝试编写一个拍摄图像的方法,并保存该图像的100 x 100缩略图.然而,当我保存文件时,它出来作为一个不可读0字节的图像(与错误"错误地解释了JPEG图像文件(不正确的呼叫状态200 JPEG库)")在Ubuntu的图像浏览器.我的代码如下:

public boolean scale(){

    String file = filename.substring(filename.lastIndexOf(File.separator)+1);
    File out = new File("data"+File.separator+"thumbnails"+File.separator+file);

    if( out.exists() ) return false;

    BufferedImage bi;
    try{
        bi = ImageIO.read(new File(filename));
    }
    catch(IOException e){
        return false;
    }

    Dimension imgSize = new Dimension(bi.getWidth(), bi.getHeight());
    Dimension bounds = new Dimension(100, 100);
    int newHeight = imgSize.height;
    int newWidth = imgSize.width;

    if( imgSize.width > bounds.width ){
        newWidth = bounds.width;
        newHeight = (newWidth*imgSize.height)/imgSize.width;
    }

    if( imgSize.height > bounds.width ){
        newHeight = bounds.height;
        newWidth = (newHeight*imgSize.width)/imgSize.height;
    }

    Image img …
Run Code Online (Sandbox Code Playgroud)

java byte jpeg zero javax.imageio

7
推荐指数
1
解决办法
4352
查看次数

为什么使用EditorFor over PartialView在MVC 4.5+中渲染局部视图

我正在使用ASP.NET MVC 4.5+,我试图理解为什么人们想要使用Html.EditorFor而不是Html.PartialView渲染局部视图.

我发现的是EditorFor"尊重模型层次结构",我收集的意思是,对于EditorFor呈现的视图中的输入,输入名称/ ID反映调用模型的嵌套级别,以及PartialViews不要这样做.

但是,在以下局部视图中:

@model someModel
...
@Html.TextboxFor(m => m.complexObject.property)
...
Run Code Online (Sandbox Code Playgroud)

将文本框渲染为

<input id="complexObject_property" name="complexObject.property" ... >
Run Code Online (Sandbox Code Playgroud)

通过Html.PartialView呈现时,至少在MVC 4.5+中.在我看来,很好地尊重模型层次结构.

据我所知,DisplayFor和EditorFor将告诉框架自动查看〜/*Templates文件夹,以返回这些控件调用的视图的视图.所以,我现在唯一能想到的就是我们使用Display/EditorFor来允许这种文件/文件夹结构和自动渲染,这比在"共享"文件夹中查找更具语义性.特别命名为partial.

就目前而言,即使微软的文档似乎暗示Html.EditorFor仅用于呈现单个输入,而不是视图:https://msdn.microsoft.com/en-us/library/system.web .mvc.html.editorextensions.editorfor(v = vs.118)的.aspx

c# asp.net asp.net-mvc asp.net-mvc-4

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

收到"错误:'功能'的冲突类型"

我正在创建一个程序,从二进制,十进制,十六进制和八进制转换为任何一个选项.对于hex,我需要一种方法将大于9的值格式化为A,B,C,D,E,F之一.由于这将在几个函数中重复,我决定使用以下函数:

char hexRepresentation(double n){
    if(n > 9){
        if(n==10) return 'A';
        if(n==11) return 'B';
        if(n==12) return 'C';
        if(n==13) return 'D';
        if(n==14) return 'E';
        if(n==15) return 'F';
    }

    return (char)n;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试编译时,我收到错误

'hexRepresentation'的冲突类型

我完全是C的新人,来自Java,并且正在抨击我应该做的最简单的事情.任何帮助将不胜感激!

c compiler-errors function

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