小编dje*_*evg的帖子

带有node.js的基本web服务器,用于提供服务html文件和资产

我正在做一些前端实验,我想有一个非常基本的网络服务器来快速启动项目并提供文件(一个index.html文件+一些css/js/img文件).所以我正在尝试使用node.js和express,我已经玩了两次,但是这次我不想使用渲染引擎,因为我只有一个静态文件,这个代码我得到了html文件但不是资产(错误404):

var express = require('express'),
    app = express.createServer();

app.configure(function(){
  app.use(express.static(__dirname + '/static'));
});

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

app.listen(3000);
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法(如果可能,在一个文件中)或Express需要使用视图和渲染引擎?

javascript node.js express

40
推荐指数
3
解决办法
7万
查看次数

django-tastypie - 如何通过关系实现多种多样性

我正在为一个项目开发一个API,我通过OrderProducts建立了一个关系Order/Products,如下所示:

在catalog/models.py中

class Product(models.Model):
    ...
Run Code Online (Sandbox Code Playgroud)

在order/models.py中

class Order(models.Model):
    products = models.ManyToManyField(Product, verbose_name='Products', through='OrderProducts')
    ...

class OrderProducts(models.Model):
    order = models.ForeignKey(Order)
    product = models.ForeignKey(Product)
    ...
Run Code Online (Sandbox Code Playgroud)

现在,当我通过API加载订单时,我也希望获得相关产品,所以我尝试了这个(使用django-tastypie):

按顺序/ api.py

class OrderResource(ModelResource):
    products = fields.ToManyField('order.api.OrderProductsResource', products, full=True)

    class Meta:
        queryset = Order.objects.all()
        resource_name = 'order'

class OrderProductsRessource(ModelResource):
    order = fields.ToOneField(OrderResource, 'order')

    class Meta:
        queryset = OrderProducts.objects.all()
        resource_name = 'order/products'
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误信息:"'产品'对象没有属性'订单'".所以我不确定什么是错的或遗漏的,它可能也需要我的产品资源中的东西,但我尝试了几种方法但没有成功.欢迎任何帮助:)

api django django-orm tastypie

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

使用Django/Redis/Node.js实时推/拉

我正在尝试在Django应用程序上添加实时更新,该应用程序具有与此处所述类似的体系结构:http://lincolnloop.com/blog/2012/apr/23/ginger-tech-stack/.基本上,更新通过Redis从Django发送到Node.js,然后通过Socket.io推送到连接的客户端.现在,我可以向连接的每个客户广播,但在实际情况下,我需要通过动作向有关客户发送数据(例如:用户发布消息,只有他的联系人/订阅者收到此消息).所以我需要在Node.js端进行某种身份验证,以了解谁是谁.怎么能实现这一目标?

django redis node.js

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

django-tastypie尝试在POST请求上创建相关对象

当我尝试通过我的项目API使用foreignkey(在本例中为2)创建一个对象时,tastypie也尝试创建相关对象(此处为order&participant):

class ParticipationResource(ModelResource):
    order = fields.ForeignKey(Order, 'order', full=True,)
    participant = fields.ForeignKey(UserProfile, 'participant', full=True)

    class Meta:
        authorization = Authorization()
        queryset = Participation.objects.all()
        resource_name = 'participation'
        fields = ['id', 'order', 'participant', 'products', 'created_at', 'modified_at']
        filtering = {
            'participant': ALL
        }
        detail_allowed_methods = ['get', 'post', 'put', 'delete',]
        always_return_data = True
Run Code Online (Sandbox Code Playgroud)

发布的数据:

 {
     "order": {
         "id":"1", 
         "resource_uri":"/api/v1/order/1/"
         ...
      },
     "participant":{
         "id":"1",
         "resource_uri":"/api/v1/participant/1/"
         ...
      },
     "products":[]
  }
Run Code Online (Sandbox Code Playgroud)

错误消息(network_id是用户配置文件模型上的外键):

"error_message": "app_user_profile.network_id may not be NULL",
Run Code Online (Sandbox Code Playgroud)

你可以看到我在我的POST请求中发送完整的对象,我只尝试了resource_uri并且工作正常,问题是我需要客户端渲染的完整对象(我使用的是Backbone,模型是自动渲染).那我该怎么办?有没有办法让tastypie不创建相关对象?

api django backbone.js tastypie

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

标签 统计

django ×3

api ×2

node.js ×2

tastypie ×2

backbone.js ×1

django-orm ×1

express ×1

javascript ×1

redis ×1