小编TPJ*_*TPJ的帖子

如何在sequelize中建模一对多关联?

我是Sequelize的新手,我想弄清楚,我应该如何建立一对多的关系.

我的问题如下:一个学期,很多论文.

var Term = sequelize.define( 'Term', ... );
var Paper = sequelize.define( 'Paper', ... );
Run Code Online (Sandbox Code Playgroud)

我们假设我有一个术语.每个学期都可以有很多论文,我想为我的学期添加/删除论文.我也希望获得该学期的所有论文.

var term;
...
term.getPapers( ... );
term.setPapers( ... );
term.addPaper( paper );
term.removePaper( paper );
Run Code Online (Sandbox Code Playgroud)

现在,让我们假设我有一篇论文.我想得到/设定我的论文的术语.

var paper;

...

paper.getTerm();
paper.setTerm();
Run Code Online (Sandbox Code Playgroud)

如何用续集来实现?我已经研究了几个小时的文档,还在网上寻找一些胶水,但没有任何结果.我发现这种关联在续集中很难记录(一对一和多对多的方式更好).

更新:

好吧,几个小时后我弄清楚它是如何工作的:

Term.hasMany( Paper, { as: 'papers' } );
Paper.hasOne( Term );
Run Code Online (Sandbox Code Playgroud)

现在我们可以做到:

term.addPaper( paper );
term.removePaper( paper );

paper.getTerm()
  .success( function( term )
  {
    ...
  });
paper.setTerm( term );
Run Code Online (Sandbox Code Playgroud)

我已经习惯了Django,而且看起来Sequelize在代码和文档方面都不那么成熟......

node.js sequelize.js

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

如何在Elm中将`Msg`类型分成多种类型?

在Elm中使用模型和更新的标准方法是定义Model和Msg类型以及更新函数:

type alias Model = { ... }

type Msg = Msg1 | Msg2 | ...

update : Msg -> Model -> (Model, Cmd Msg)
...
Run Code Online (Sandbox Code Playgroud)

当应用程序增长时,所有这些类型和功能变得更加复杂.我想以下列方式将它们分开:

type alias Model1 = { ... }
type alias Model2 = { ... }
type alias Model = { model1 : Model1, model2 : Model2 }

type Msg1 = Msg1a | Msg1b | ...
type Msg2 = Msg2a | Msg2b | ...
type Msg = M1 Msg1 | M2 Msg2 | ...
Run Code Online (Sandbox Code Playgroud)

然后,我想分别处理所有这些(我知道该怎么做). …

elm elm-architecture

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

lodash中map和max的奇怪行为

var a = [ [1,2,3], [4,5,6], [7,8,9] ];
_.map( a, _.max );
// gives [3, -Infinity, -Infinity]
Run Code Online (Sandbox Code Playgroud)

我已经在lodash网站上的Chrome浏览器上对其进行了测试.

上面的代码不应该返回[3,6,9]吗?

我可以用forEach获得正确的结果:

var a = [ [1,2,3], [4,5,6], [7,8,9] ];
var result = [];
_.forEach( a, function(arr) { result.push(_.max(arr)); } );
Run Code Online (Sandbox Code Playgroud)

javascript lodash

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

Haskell:最简单的wai示例的问题

我是一个Haskell新手,我正在努力让wai包工作(因为我对使用Haskell进行Web应用程序感兴趣).我试着从wai主页的第一个最简单的例子开始:

[ 1] {-# LANGUAGE OverloadedStrings #-}
[ 2] import Network.Wai
[ 3] import Network.Wai.Enumerator (fromLBS)
[ 4] import Network.Wai.Handler.SimpleServer (run)
[ 5] 
[ 6] app :: Application
[ 7] app _ = return Response
[ 8]     { status          = status200
[ 9]     , responseHeaders = [("Content-Type", "text/plain")]
[10]     , responseBody    = ResponseLBS "Hello, Web!"
[11]     }
[12] 
[13] main :: IO ()
[14] main = do
[15]     putStrLn $ "http://localhost:8080/"
[16]     run 8080 app
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码(使用runhaskell)时,我收到以下错误:

wapp.hs:10:3​​6:没有实例(Data.String.IsString Data.ByteString.Lazy.Internal.ByteString)来自文字"Hello,Web!",来自wapp.hs:10:3​​6-48 …

haskell

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