我目前正在与3个朋友一起使用nodeJs,expressJs,MongoDB,html5进行一个项目......由于我们对这些技术还不熟悉,我们遇到了一些问题.我无法找到解决方案的一个大问题是某些代码的异步执行.
我想要为每个循环完成,以便我有一个更新的在线好友列表,然后执行res.render(我在其中传递在线好友列表),因为当前它在完成循环之前执行res.render .码:
function onlineFriends(req, res) {
var onlinefriends = new Array();
onlinefriends.push("mark");
FriendList.findOne({
owner: req.session.username
}, function (err, friendlist) {
friendlist.friends.forEach(function (friend) { // here forEach starts
OnlineUser.findOne({
userName: friend
}, function (err, onlineFriend) {
if (onlineFriend != null) {
onlinefriends.push(onlineFriend.userName);
console.log("a loop");
}
});
});
console.log("online friends: " + onlinefriends);
console.log("redirecting");
res.render('index', { // this is still inside the forEach function
friendlist: friendlist.friends,
onlinefriendlist: onlinefriends,
username: req.session.username
});// and here it ends
});
Run Code Online (Sandbox Code Playgroud)
}
输出如下:
online friends: mark …Run Code Online (Sandbox Code Playgroud) 在使用Hibernate处理Spring 3 MVC项目时,我们遇到了一个恼人的错误.我们正在创建一个拼车应用程序.人们可以添加路线(使用jQuery的Gmap 3插件)并可以为其路线添加路标.在数据库中,航点具有路线的外键.当尝试更新路线(添加/删除航点并重新保存路线)时,我们得到"找到同一集合的两个表示"错误.我们已经研究了互联网,但主要的话题谈论播放框架(我们不使用),此外他们谈论注解的配置方法(而我们使用XML映射).有谁知道我们如何解决这个问题?或者这是Hibernate本身的问题?
一些代码澄清了问题:
路由类的XML映射:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="be.kdg.teamb.model.pojo.Route" table="route">
<id name="routeid" type="java.lang.Integer">
<generator class="identity"/>
</id>
<property name="departure" not-null="true"/>
<property name="latitude_departure" />
<property name="longtidude_departure" />
<property name="destination" not-null="true"/>
<property name="latitude_destination" />
<property name="longtidude_destination" />
<property name="departureTime" not-null="true" type="java.util.Date" />
<property name="startDate" not-null="true" type="java.util.Date"/>
<property name="endDate" type="java.util.Date" />
<many-to-one name="driver" column="userid" not-null="true" cascade="save-update" />
<many-to-one name="defaultCar" column="carid" not-null="true" cascade="save- update"/>
<set name="waypoints" cascade="all,delete-orphan" inverse="true">
<key column="routeid" on-delete="cascade" />
<one-to-many class="be.kdg.teamb.model.pojo.Waypoint" /> …Run Code Online (Sandbox Code Playgroud) asynchronous ×1
exception ×1
foreach ×1
hibernate ×1
java ×1
javascript ×1
node.js ×1
spring-mvc ×1
synchronous ×1